Arbol de Decisión en Python: Clasificación y predicción.

En este artículo describiremos rápidamente en qué consisten y cómo funcionan los árboles de decisión utilizados en Aprendizaje Automático y nos centraremos en un divertido ejemplo en Python en el que analizaremos a los cantantes y bandas que lograron un puesto número uno en las listas de Billboard Hot 100 e intentaremos predecir quién será el próximo Ed Sheeran a fuerza de Inteligencia Artificial. Realizaremos Gráficas que nos ayudarán a visualizar los datos de entrada y un grafo para interpretar el árbol que crearemos con el paquete Scikit-Learn. Comencemos!

¿Qué es un árbol de decisión?

Los arboles de decisión son representaciones gráficas de posibles soluciones a una decisión basadas en ciertas condiciones, es uno de los algoritmos de aprendizaje supervisado más utilizados en machine learning y pueden realizar tareas de clasificación o regresión (acrónimo del inglés CART). La comprensión de su funcionamiento suele ser simple y a la vez muy potente.

Utilizamos mentalmente estructuras de árbol de decisión constantemente en nuestra vida diaria sin darnos cuenta:

Continue reading “Arbol de Decisión en Python: Clasificación y predicción.”

K-Means en Python paso a paso

K-Means es un algoritmo no supervisado de Clustering. Se utiliza cuando tenemos un montón de datos sin etiquetar. El objetivo de este algoritmo es el de encontrar “K” grupos (clusters) entre los datos crudos. En este artículo repasaremos sus conceptos básicos y veremos un ejemplo paso a paso en python que podemos descargar.

Cómo funciona K-Means

El algoritmo trabaja iterativamente para asignar a cada “punto” (las filas de nuestro conjunto de entrada forman una coordenada) uno de los “K” grupos basado en sus características. Son agrupados en base a la similitud de sus features (las columnas). Como resultado de ejecutar el algoritmo tendremos:

Continue reading “K-Means en Python paso a paso”

Qué es overfitting y underfitting y cómo solucionarlo

Las principales causas al obtener malos resultados en Machine Learning son el overfitting o el underfitting de los datos. Cuando entrenamos nuestro modelo intentamos “hacer encajar” -fit en inglés- los datos de entrada entre ellos y con la salida. Tal vez se pueda traducir overfitting como “sobreajuste” y underfitting  como “subajuste” y hacen referencia al fallo de nuestro modelo al generalizar -encajar- el conocimiento que pretendemos que adquieran. Lo explicaré a continuación con un ejemplo.

Generalización del Conocimiento

Como si se tratase de un ser humano, las máquinas de aprendizaje deberán ser capaces de generalizar conceptos. Supongamos que vemos un perro Labrador por primera vez en la vida y nos dicen “eso es un perro”. Luego nos enseñan un Caniche y nos preguntan: ¿eso es un perro? Diremos “No”, pues no se parece en nada a lo que aprendimos anteriormente. Ahora imaginemos que nuestro tutor nos muestra un libro con fotos de 10 razas de perros distintas. Cuando veamos una raza de perro que desconocíamos seguramente seremos capaces de reconocer al cuadrúpedo canino al tiempo de poder discernir en que un gato no es un perro.

Continue reading “Qué es overfitting y underfitting y cómo solucionarlo”

Aprendizaje Profundo: una Guía rápida

Explicando Deep Learning y Redes Neuronales -sin código-

Intentaré explicar brevemente en qué consiste el Deep Learning ó Aprendizaje Profundo utilizado en Machine Learning describiendo sus componentes básicos.

Conocimientos Previos

Daré por sentado que el lector ya conoce la definición de Machine Learning y sus principales aplicaciones en el mundo real y el panorama de algoritmos utilizados con mayor frecuencia. Nos centraremos en Aprendizaje Profundo aplicando Redes Neuronales Artificiales.

Entonces, ¿cómo funciona el Deep Learning? Mejor un Ejemplo

El Aprendizaje Profundo es un método del Machine Learning que nos permite entrenar una Inteligencia Artificial para obtener una predicción dado un conjunto de entradas. Se puede utilizar Aprendizaje Supervisado o No Supervisado.

Explicaré como funciona el Deep Learning mediante un ejemplo hipotético de un servicio de predicción de quién ganará el próximo mundial de futbol. Utilizaremos aprendizaje supervisado mediante algoritmos de Redes Neuronales Artificiales.

Para lograr las predicciones de los partidos de fútbol usaremos como ejemplo las siguientes entradas:

Continue reading “Aprendizaje Profundo: una Guía rápida”

Aplicaciones del Machine Learning

Para comentar las  diversas aplicaciones del ML primero vamos a diferenciar entre el Aprendizaje Supervisado y No Supervisado y el Aprendizaje por Refuerzo.

Aprendizaje Supervisado

En el Aprendizaje Supervisado los datos para el entrenamiento incluyen la solución deseada, llamada “etiquetas” (labels). Un claro ejemplo es al clasificar correo entrante entre Spam o no. Entre las diversas características que queremos entrenar deberemos incluir si es correo basura o no con un 1 o un 0. Otro ejemplo son al predecir valores numéricos por ejemplo precio de vivienda a partir de sus características (metros cuadrados, nº de habitaciones, incluye calefacción, distancia del centro, etc.) y deberemos incluir el precio que averiguamos en nuestro set de datos.

Los algoritmos más utilizados en Aprendizaje Supervisado son:

Aprendizaje No Supervisado

En el aprendizaje No Supervisado los datos de entrenamiento no incluyen Etiquetas y el algoritmo intentará clasificar o descifrar la información por sí solo. Un ejemplo en el que se usa es para agrupar la información recolectada sobre usuarios en una Web o en una app y que nuestra Inteligencia detecte diversas características que tienen en común.

Los algoritmos más importantes de Aprendizaje No supervisado son:

Aprendizaje por Refuerzo

Nuestro sistema será un “agente autónomo” que deberá explorar “un espacio” desconocido y determinar las acciones a llevar a cabo mediante prueba y error. Aprenderá por sí mismo obteniendo premios -recompensas- y penalidades la forma óptima para recorrer un camino, resolver un puzzle o comportarse por ejemplo en el Pac Man o en el Flappy Bird. Creará la mejor estrategia posible (políticas) para obtener la mayor recompensa posible en tiempo y forma. Las políticas definirán qué acciones tomar ante cada situación a la que se enfrente.

  • Procesos de Decisión de Markov (MDP: Markov Decision Process)

Aplicaciones de ML  y Ejemplos

Las aplicaciones más frecuentes del Machine Learning son:

Continue reading “Aplicaciones del Machine Learning”

¿Qué es Machine Learning? Una definición

aprendizaje automático que es

Un artículo que intentará ayudar a comprender qué es el Machine Learning o Aprendizaje Automático

A partir de mi experiencia en diversos cursos, artículos y lecturas voy a describir qué es el Machine Learning. Veremos algunas definiciones ya existentes. Este es un compilado que intentará dar mejor comprensión sobre esta revolucionaria materia.

Definiendo Machine Learning

El Machine Learning -traducido al Español como “Aprendizaje Automático”- es un subcampo de la Inteligencia Artificial que busca resolver el “cómo construir programas de computadora que mejoran automáticamente adquiriendo experiencia”.

Esta definición indica que el programa que se crea con ML no necesita que el programador indique explícitamente las reglas que debe seguir para lograr su tarea si no que este mejora automáticamente.

Grandes volúmenes de datos están surgiendo de diversas fuentes en los últimos años y el Aprendizaje Automático relacionado al campo estadístico consiste en extraer y reconocer patrones y tendencias para comprender qué nos dicen los datos. Para ello, se vale de algoritmos que pueden procesar Gygas y/o Terabytes y obtener información útil.

Una Definición Técnica

Durante mi cursada de Aprendizaje Automático en Coursera, encontré la siguiente “definición técnica”:

Continue reading “¿Qué es Machine Learning? Una definición”