PROPÓSITO: La siguiente unidad tiene como propósito principal el desarrollo de aplicaciones o resolución de problemas de programación utilizando algoritmos de aprendizaje no supervisado.
A diferencia del caso anterior, no existe la intervención humana en este tipo de Machine Learning. Aquí los algoritmos aprenden de datos con elementos no etiquetados buscando patrones o relaciones entre ellos automáticamente. Usualmente, se les conoce como algoritmos de Clustering o Agrupamiento. En este caso:
Se introducen datos de entrada sin etiquetar.
No necesita la intervención humana.
Existen otros casos prácticos en los que se utiliza este tipo de aprendizaje:
La segmentación del tipo de clientes en un banco.
La clasificación del tipo de pacientes en un hospital.
El sistema de recomendaciones de contenido según el consumo del usuario en plataformas de streaming de vídeo.
K-means es un algoritmo de clasificación no supervisada (clusterización) que agrupa objetos en k grupos basándose en sus características. El agrupamiento se realiza minimizando la suma de distancias entre cada objeto y el centroide de su grupo o cluster. Se suele usar la distancia cuadrática.
El algoritmo consta de tres pasos:
Inicialización: una vez escogido el número de grupos, k, se establecen k centroides en el espacio de los datos, por ejemplo, escogiéndolos aleatoriamente.
Asignación objetos a los centroides: cada objeto de los datos es asignado a su centroide más cercano.
Actualización centroides: se actualiza la posición del centroide de cada grupo tomando como nuevo centroide la posición del promedio de los objetos pertenecientes a dicho grupo.
Se repiten los pasos 2 y 3 hasta que los centroides no se mueven, o se mueven por debajo de una distancia umbral en cada paso.
El algoritmo k-means resuelve un problema de optimización, siendo la función a optimizar (minimizar) la suma de las distancias cuadráticas de cada objeto al centroide de su cluster. Acá y también acá se puede encontrar más información.
Para evaluar K-means revisemos el siguiente notebook.
Un centro de cluster es el representante de su cluster. La distancia al cuadrado entre cada punto y su centro de grupo es la variación. El objetivo de la agrupación de k-means es encontrar estas k agrupaciones y sus centros mientras se reduce el error total. Un algoritmo bastante elegante, pero ¿Cómo decidir la cantidad de grupos?
Estos métodos son:
El método del codo
El método de la silueta
Metodo del codo
Calcule la suma de errores al cuadrado dentro del clúster (WSS) para diferentes valores de k, y elija la k para la cual WSS se convierte en la primera que comienza a disminuir. En la gráfica de WSS-versus-k, esto es visible como un codo.
La suma de errores al cuadrado dentro del clúster suena un poco complejo. Vamos a desglosarlo:
El error al cuadrado para cada punto es el cuadrado de la distancia entre el punto y su representación, es decir, su centro de grupo previsto.
La puntuación WSS es la suma de estos errores al cuadrado para todos los puntos.
Se puede utilizar cualquier métrica de distancia como la Distancia euclidiana o la Distancia de Manhattan.
Metodo de la silueta
El valor de silueta mide qué tan similar es un punto a su propio grupo (cohesión) en comparación con otros grupos (separación).
El rango del valor de silueta está entre +1 y -1. Es deseable un valor alto e indica que el punto está ubicado en el grupo correcto. Si muchos puntos tienen un valor de silueta negativo, puede indicar que hemos creado demasiados o muy pocos grupos.
Ejemplos: Este post, y este otro
Echemos un vistazo al siguiente notebook
Es común encontrar el uso notebook
El algoritmo de mean shift se basa en el concepto de estimación de densidad de kernel (KDE). Imagine que los datos anteriores se muestrearon a partir de una distribución de probabilidad. KDE es un método para estimar la distribución subyacente (también llamada función de densidad de probabilidad) para un conjunto de datos.
Funciona colocando un núcleo en cada punto del conjunto de datos. Un núcleo es una elegante palabra matemática para una función de ponderación. Hay muchos tipos diferentes de núcleos, pero el más popular es el núcleo gaussiano. La suma de todos los núcleos individuales genera una superficie de probabilidad (por ejemplo, función de densidad). Dependiendo del parámetro de ancho de banda del kernel utilizado, la función de densidad resultante variará.
Un ejemplo, puede ser encontrado aquí
A diferencia de otros métodos tradicionales de agrupación en clústeres, el algoritmo de propagación de afinidad o Affinity Propagation no requiere que especifique el número de clústeres. En términos simples, en Affinity Propagation, cada punto de datos envía mensajes a todos los demás puntos informando a sus objetivos del atractivo relativo de cada objetivo para el remitente. Luego, cada objetivo responde a todos los remitentes con una respuesta que informa a cada remitente de su disponibilidad para asociarse con el remitente, dado el atractivo de los mensajes que ha recibido de todos los demás remitentes. Los remitentes responden a los objetivos con mensajes que informan a cada objetivo del atractivo relativo revisado del objetivo para el remitente, dados los mensajes de disponibilidad que ha recibido de todos los objetivos. El procedimiento de transmisión de mensajes continúa hasta que se alcanza un consenso. Una vez que el remitente se asocia con uno de sus objetivos, ese objetivo se convierte en el ejemplar del cluster. Todos los puntos con el mismo ejemplar se colocan en el mismo grupo.
Un ejemplo, puede ser encontrado aquí
Además de los algoritmos de clustering, un aspecto importante a tener en cuenta según la aplicación es la forma de medir el desempeño de los algoritmos de aprendizaje. Sin embargo, estas varian un poco respecto a las métricas para los algoritmos de aprendizaje supervisado. A continuación veremos algunas de las más populares. Además, un post más completo sobre estas métricas es encontrado aquí.
Indica Rand Ajustado
El índice Rand ajustado es la versión corregida por azar del índice Rand. Tal corrección por azar establece una línea de base usando la similitud esperada de todas las comparaciones por pares entre agrupaciones especificadas por un modelo aleatorio. Tradicionalmente, el índice Rand se corrigió utilizando el modelo de permutación para agrupaciones (el número y el tamaño de las agrupaciones dentro de una agrupación son fijos y todas las agrupaciones aleatorias se generan mezclando los elementos entre las agrupaciones fijas). Sin embargo, las premisas del modelo de permutación se violan con frecuencia; en muchos escenarios de agrupación, el número de agrupaciones o la distribución de tamaño de esas agrupaciones varían drásticamente. Por ejemplo, considere que en K-medias el número de conglomerados lo fija el profesional, pero los tamaños de esos conglomerados se infieren de los datos. Las variaciones del índice de Rand ajustado explican diferentes modelos de agrupaciones aleatorias.
Aunque el índice Rand solo puede arrojar un valor entre 0 y +1, el índice Rand ajustado puede generar valores negativos si el índice es menor que el índice esperado.
información mutua metricas - Mutual Information scores
En la teoría de la probabilidad y la teoría de la información, la información mutua (MI) de dos variables aleatorias es una medida de la dependencia mutua entre las dos variables. Más específicamente, cuantifica la "cantidad de información" (en unidades como shannons, comúnmente llamados bits) obtenida sobre una variable aleatoria mediante la observación de la otra variable aleatoria. El concepto de información mutua está íntimamente ligado al de entropía de una variable aleatoria, una noción fundamental en la teoría de la información que cuantifica la "cantidad de información" esperada contenida en una variable aleatoria.
No limitado a variables aleatorias de valor real y dependencia lineal como el coeficiente de correlación, MI es más general y determina qué tan diferente es la distribución conjunta del par (X, Y) al producto de las distribuciones marginales de X y Y. MI es el valor esperado de la información mutua puntual (PMI).
Revisemos el siguiente notebook.