Los 2 tipos de aprendizaje en Machine Learning: supervisado y no supervisado

Thursday, November 16, 2017

Los 2 tipos de aprendizaje en Machine Learning: supervisado y no supervisado

Ya hemos visto, en post anteriores, que las técnicas de Machine Learning consisten básicamente en automatizar, mediante distintos algoritmos, la identificación de patrones o tendencias que se “esconden” en los datos. Por ello, resulta muy importante no sólo la elección del algoritmo más adecuado (y su posterior parametrización para cada problemática concreta), sino también el hecho de disponer de un gran volumen de datos de suficiente calidad. 

La elección del algoritmo no es fácil. Si nos asomamos a internet, podemos encontrarnos con un auténtica avalancha de artículos muy detallados, que a veces, más que ayudarnos, nos confunden. Por ello, vamos a intentar dar algunas pautas básicas para empezar a trabajar. 

Hay dos preguntas fundamentales que nos debemos plantear. La primera es:

¿Qué es lo que quiero hacer?


Para responder a esta pregunta, nos puede venir muy bien releer dos post que publicamos anteriormente en el blog de LUCA “Las 9 tareas en que se basa el Machine Learning”, y “Las 5 preguntas que puedes responder con Data Science”. El quid de la cuestión es definir de forma clara el objetivo. Para resolver nuestro problema, pues, nos plantearemos qué tipo de tarea es la que tendremos que acometer. Puede tratarse, por ejemplo de un problema de clasificación, como la detección de correo basura o “spam”; o de un problema de clustering, como recomendarle un libro a un cliente basándonos en sus compras anteriores (sistema de recomendación de Amazon). También podemos intentar averiguar, por ejemplo, cuánto va a usar un cliente un determinado servicio. En este caso, estaríamos ante un problema de regresión (estimación de un valor).

Si consideramos el clásico problema de retención de clientes, vemos que podemos abordarlo desde distintos enfoques. Queremos hacer una segmentación de clientes, sí, pero ¿qué estrategia es la más adecuada? ¿Es mejor tratarlo como problema de clasificación, clustering o incluso regresión? La pista clave nos la va a dar plantearnos la segunda pregunta.

¿Qué información tengo para conseguir mi objetivo?


Si yo me pregunto:  "Mis clientes, ¿se agrupan de alguna manera, de forma natural?", no he definido ningún objetivo (target) para el agrupamiento. Sin embargo, si planteo la pregunta de esta otra forma: ¿Podemos identificar grupos de clientes con una alta probabilidad de solicitar la baja del servicio en cuanto finalice su contrato?, tenemos un objetivo perfectamente definido: ¿se dará de baja el cliente?, y queremos tomar medidas según la respuesta que obtengamos. En el primer caso, nos encontramos ante un ejemplo de aprendizaje no supervisado, mientras que el segundo lo es de aprendizaje supervisado.  

En las fases iniciales del proceso de Data Science, es muy importante decidir si la “estrategia de ataque” será supervisada o no supervisada, y en éste último caso definir de forma precisa cuál va a ser la variable objetivo. Según decidamos, trabajaremos con una familia de algoritmos o con otra.

Aprendizaje Supervisado


En el aprendizaje supervisado, los algoritmos trabajan con datos “etiquetados” (labeled data), intentado encontrar una función que, dadas las variables de entrada (input data), les asigne la etiqueta de salida adecuada. El algoritmo se entrena con un “histórico” de datos y así “aprende” a asignar la etiqueta de salida adecuada a un nuevo valor, es decir, predice el valor da salida.

Por ejemplo, un detector de spam, analiza el histórico de mensajes, viendo qué función puede representar, según los parámetros de entrada que se definan (el remitente, si el destinatario es individual o parte de una lista, si el asunto contiene determinados términos etc), la asignación de la etiqueta “spam” o “no es spam”. Una vez definida esta función, al introducir un nuevo mensaje no etiquetado, el algoritmo es capaz de asignarle la etiqueta correcta.

El aprendizaje supervisado se suele usar en problemas de clasificación, como identificación de dígitos, diagnósticos, o detección de fraude de identidad.  También se usa en problemas de regresión, como predicciones meteorológicas, de expectativa de vida, de crecimiento etc. Estos dos tipos principales de aprendizaje supervisado, clasificación y regresión, se distinguen por el tipo de variable objetivo. En los casos de clasificación, es de tipo categórico, mientras que, en los casos de regresión, la variable objetivo es de tipo numérico.

Aunque en post posteriores hablaremos con más detalle de diferentes algoritmos, adelantamos ya algunos de los más frecuentes en aprendizaje supervisado:

1. Árboles de decisión
2. Clasificación de Naïve Bayes 
3. Regresión por mínimos cuadrados
4. Regresión Logítica
5. Support Vector Machines (SVM)
6. Métodos “Ensemble” (Conjuntos de clasificadores)


https://es.wikipedia.org/wiki/Iris_flor_conjunto_de_datos
Figura 1: El Iris dataset de Fischer es un ejemplo clásico para explicar la diferencia entre aprendizaje supervisado y no supervisado

Aprendizaje no Supervisado


El aprendizaje no supervisado tiene lugar cuando no se dispone de datos “etiquetados”  para el entrenamiento. Sólo conocemos los datos de entrada, pero no existen datos de salida que correspondan a un determinado input. Por tanto, sólo podemos describir la estructura de los datos, para intentar encontrar algún tipo de organización que simplifique el análisis. Por ello, tienen un carácter exploratorio.


Por ejemplo, las tareas de clustering, buscan agrupamientos basados en similitudes, pero nada garantiza que éstas tengan algún significado o utilidad. En ocasiones, al explorar los datos sin un objetivo definido, se pueden encontrar correlaciones espúreas curiosas, pero poco prácticas. Por ejemplo, en la gráfica inferior, publicada en la web de Tyler Vigen Spurious Correlations, podemos apreciar una fuerte correlación entre el consumo per cápita de pollo en Estados Unidos y sus importaciones de petróleo.

http://tylervigen.com/spurious-correlations
Figura 1: Ejemplo de correlación espúrea..


El aprendizaje no supervisado se suele usar en problemas de clustering, agrupamientos de co-ocurrencia y profiling. Si embargo, los problemas que implican tareas de encontrar similitud, predicción de enlaces o reducción de datos, pueden ser supervisados o no.

Los tipos de algoritmo más habituales en aprendizaje no supervisado son:
1.Algoritmos de clustering
2.Análisis de componentes principales
3.Descomposición en valores singulares (singular value decomposition)
4.Análisis de componentes independientes (Independent Component Analysis)

¿Qué algoritmo elegir?


Una vez tenemos claro si estamos ante un caso de aprendizaje supervisado o no supervisado, podemos usar una de las famosas "cheat-sheet" de algoritmos (lo que nosotros llamaríamos "chuleta"), para ayudarnos a elegir con cuál queremos empezar a trabajar. Os dejamos como ejemplo una de las más conocidas, la de scikit-learn. Pero hay muchas más, como por ejemplo, la de Microsoft Azure Machine Learning Algorithm cheat sheet.

http://www.datasciguide.com/content/scikit-learn-algorithm-cheat-sheet/
Figura 1: "Chuleta" de selección de algoritmo de Scikit-learn.

No comments:

Post a Comment