El aprendizaje automático (ML) es un tema candente en este momento.
Y el ML supervisado recibe mucha atención. Tienen redes neuronales llamativas, el clasificador Naive Bayes y muchos otros métodos interesantes (algunos de los cuales se han tratado en nuestro Blog JMP aquí ).
Pero el ML supervisado requiere etiquetas o datos veraces. No podemos pedirle a una computadora que aprenda qué es un gato si no podemos decirle cuándo es correcto o incorrecto. Desafortunadamente, es difícil encontrar etiquetas en ciertos conjuntos de datos. A la gente se le han ocurrido formas ingeniosas de obtener datos etiquetados de forma económica, como CAPTCHA, que le piden que haga clic en cada foto que tenga una señal de alto, o la famosa aplicación Quick Draw de Google; pero puede resultar costoso etiquetar grandes conjuntos de datos.
Muchas veces no tenemos etiquetas ni la verdad, pero sí datos. En estos casos debemos utilizar Naciones Unidas Aprendizaje automático supervisado. El ML no supervisado se llama así porque no podemos decirle qué está bien o mal. Al igual que una niñera nueva que no conoce las reglas de la casa, los algoritmos de aprendizaje automático no supervisados no tienen las respuestas correctas. No podemos “corregir” el algoritmo cuando algo sale mal, porque no hay una respuesta clara, correcta o incorrecta.
Si bien no es el único tipo de aprendizaje automático no supervisado, la agrupación en clústeres es muy popular. Cuando no tenemos grupos preestablecidos para nuestros datos, nuestro instinto natural suele ser crear esos grupos nosotros mismos. En general, la agrupación tiene como objetivo agrupar puntos de datos que están muy cerca en el mismo grupo y puntos de datos que están lejos entre sí en grupos diferentes. Se llama cohesión (puntos similares están juntos) y separación (Los puntos diferentes no lo son). Debido a que no tenemos etiquetas para comparar, a menudo juzgamos el “éxito” de nuestros grupos en función de cuán cohesivos y separados están.
K-medias
Echemos un vistazo a este pequeño conjunto de datos de unos grandes almacenes llamado REAL ACADEMIA DE BELLAS ARTES pescador . Fisher's busca implementar un nuevo programa de recompensas de tres niveles, pero el personal necesita saber qué tipo de ofertas hacer para cada uno de los tres niveles.
Recopilaron datos piloto sobre el número promedio de compras y el número promedio de artículos en cada compra para 30 clientes. Los datos se grafican a continuación.
Queremos separar a nuestros clientes en tres grupos para poder tener un nivel que se adapte a cada cliente. Entonces, decidimos usar k-means para dividir a los clientes en tres grupos según el número promedio de viajes que realizan por año y cuántos artículos compran en promedio por viaje.
El primer paso de k-medias es elegir k. Hemos elegido tres. Luego seleccionamos k puntos aleatorios de nuestros datos. Vamos a tratar estos puntos de datos como los centros de nuestros tres grupos.
Luego, asignamos cada punto de datos para que esté en el grupo del punto más cercano. Por ejemplo, este punto en la parte superior es el más cercano al punto azul, por lo que estará en el grupo azul.
Asignamos cada uno de nuestros puntos a un grupo de esta manera.
Ahora que tenemos tres grupos, podemos volver a calcular los nuevos centros de cada grupo.
Y luego reasigne cada punto a su nuevo grupo más cercano.
Luego repetimos estos pasos hasta que la membresía del grupo (o los centros) no cambie:
- Calcular centros
- Reasignar puntos
Una vez que se ha alcanzado este estado, nuestro modelo tiene convergido , y utilizamos estas membresías de clústeres como nuestras asignaciones finales de clústeres.
Ahora podemos usar nuestros clústeres para crear nuestros tres niveles de clientes para Fisher's. Parece que tenemos un grupo claro en rojo que tiene pocos viajes y no compra muchos artículos. Para conseguirlos en la tienda con más frecuencia, ofrecemos un 15% de descuento los martes.
El grupo verde realiza una cantidad moderada de viajes, pero compra una gran cantidad de artículos cuando lo hace. Para atenderlos, nuestro nivel Plata incluirá cupones con un 60 % de descuento en un artículo cada semana para que estos clientes visiten la puerta con más frecuencia.
Y, por último, nuestro nivel Gold atenderá al grupo azul, que visita la tienda con regularidad, pero solo compra unos pocos artículos. Este nivel incluye eventos bianuales en los que compre uno y obtenga otro con un 50 % de descuento para tratar de atraer a estos clientes a comprar más artículos.
K-means es una excelente manera de separar sus datos en grupos. Y aunque nuestro ejemplo solo tenía dos dimensiones (viajes y elementos), las k-medias pueden funcionar bien para datos de dimensiones superiores. Simplemente es más difícil trazar los resultados en una publicación de blog….
Anteriormente mencioné que el aprendizaje no supervisado no tiene respuestas "correctas" con las que comparar nuestros resultados. No podemos calcular la precisión o la sensibilidad. Pero podemos calcular una medida de cohesión y separación. El más común es un puntuación de silueta . Las puntuaciones de silueta oscilan entre -1 y 1, siendo mejores las puntuaciones más altas. ai) es la distancia promedio entre un punto de datos, y todos los demás puntos de datos de su grupo. Esto mide la cohesión, es decir, qué tan cerca están entre sí los puntos de datos de un grupo. Los grupos muy unidos tendrán pequeñas un(i)s .
bi) es la distancia promedio más pequeña entre i y cada punto en un grupo diferente. Esto mide la separación, qué tan separados están los grupos entre sí. Los grupos que están bien definidos tendrán valores altos para bi) .
En conjunto, la puntuación de silueta de un punto que está lejos de los puntos de otros grupos, pero cerca de puntos de su propio grupo tendrá una puntuación de silueta alta y positiva. Los puntos que están más cerca de los puntos de otros grupos que de los del propio tendrán puntuaciones de silueta pequeñas, incluso negativas.
Podemos tener una idea de qué tan "bien" se ajustan nuestros grupos a los datos tomando un promedio de las puntuaciones de silueta para cada punto de datos. La puntuación de silueta de nuestros grupos de clientes (digamos que 10 veces más rápido...) es 0,614, lo que significa que nuestros grupos están relativamente cohesivos y separados.
Cuando obtenemos puntuaciones promedio altas en silueta, creemos que hemos descubierto algún tipo de estructura latente en los datos. Si los grupos son similares a ellos mismos y diferentes de otros, parece que estos grupos ocurren de forma natural, no algo que hayamos impuesto a los datos.
Maximización de expectativas (con mezclas de gaussianos)
K-means es un algoritmo relativamente rápido y sucio para agrupar datos. Es rápido de aprender y, a menudo, rápido de implementar. Pero tiene dos desventajas potenciales: primero, asume esfericidad, lo que significa que los grupos tienen forma de esferas multidimensionales. En la práctica, esto significa aproximadamente que asumimos que todas nuestras características tienen la misma varianza, lo que a menudo no es cierto. Piense en agrupar a los gatos según el número promedio de veces que maúllan al día y su longitud en centímetros. Es muy poco probable que esas dos cosas tengan la misma variación.
El segundo problema es que k-medias da duro asignaciones de grupos. Cada punto pertenece exactamente a un grupo. A veces, especialmente alrededor de los bordes de nuestros grupos, nos gustaría tener en cuenta el hecho de que un punto podría ser parte de cualquiera de dos grupos. Como este punto aquí. podria ser azul o verde.
Entonces, cuando pensamos... o sabemos... que nuestras diferentes características no tienen la misma varianza, o queremos suave asignaciones de conglomerados, podemos recurrir a una generalización popular de k-medias: Maximización de Expectativas o EM para abreviar.
La maximización de expectativas a menudo se implementa con mezclas de gaussianas, también conocidas como distribuciones normales multidimensionales. Como es un poco complicado, nos referiremos a esta técnica como Mezclas normales, porque así es como la llama JMP. Suponemos que todos los datos que observamos provienen de k distribuciones normales multidimensionales, y queremos descubrir cuáles son esas distribuciones.
Al igual que con k-medias, las mezclas normales utilizan puntos de partida aleatorios, pero en lugar de seleccionar solo centros, elige una media aleatoria y una covarianza para cada una de las k distribuciones. Al principio, estos pueden parecer un poco extravagantes, pero quédate con nosotros.
Este es el paso de Expectativa, o E. Luego, calculamos la probabilidad de que cada punto pertenezca a cada distribución. En lugar de asignar a cada punto de datos una asignación estricta a un grupo, decimos que pertenece a cada grupo con ciertas probabilidades.
El siguiente es el paso M. Recalculamos los parámetros de distribución, tal como calculamos los nuevos centros en k-medias. Debido a que cada punto de datos pertenece a cada grupo con cierta probabilidad, usamos cada punto para calcular los nuevos parámetros de distribución y ponderarlos según sus respectivas probabilidades de estar en ese grupo. Un punto que tiene solo un 0,01% de probabilidad de pertenecer al grupo A no afectará mucho el cálculo de la media y la covarianza del grupo A. Al menos no en comparación con un punto que tiene un 75% de posibilidades de pertenecer al Grupo A.
Si te gustan las matemáticas, la fórmula para la nueva media y covarianza se encuentra a continuación.



Estas fórmulas son prácticamente las mismas que usamos normalmente para calcular medias y covarianza, pero con la adición de una que pondera la contribución de un punto de datos al cálculo según la probabilidad de que el punto de datos pertenezca a la k-ésima distribución.
Una vez que tenemos los nuevos parámetros para cada una de nuestras k distribuciones, realizamos nuestro paso E nuevamente y recalculamos la probabilidad de que cada punto pertenezca a cada distribución.
Luego, por supuesto, viene el paso M, luego otro paso E... y sigue hasta que nuestras distribuciones "convergen". Esto significa que con cada iteración de un paso E y M, NADA cambia, o al menos las cosas no cambian demasiado. Por lo general, observamos la probabilidad logarítmica y nos aseguramos de que sea relativamente estable.
Ahora tenemos la probabilidad de que cada punto de datos pertenezca a cada grupo. Si necesitamos asignaciones estrictas de grupos, podemos simplemente elegir que cada punto de datos pertenezca al grupo con la mayor probabilidad. Pero lo bueno de los EM es que podemos aceptar la vaguedad de la membresía del cluster. Podemos observar un punto de datos y considerar el hecho de que, si bien lo más probable es que pertenezca al Grupo B, también es muy probable que pertenezca al Grupo D. Esto también tiene en cuenta el hecho de que puede que no haya límites claros entre nuestros grupos. Estos grupos consisten en distribuciones multidimensionales superpuestas, por lo que dibujar líneas claras no siempre es la mejor solución.
Agrupación en JMP
JMP ha hecho que la agrupación en clústeres sea increíblemente sencilla. Todo lo que necesitas hacer es ir al menú Analizar > Agrupación. Se ofrecen K-medias y EM con mezclas de gaussianos (llamadas mezclas normales en el menú).


Simplemente seleccione cualquiera K-medias o Mezclas normales , seleccione las columnas en las que desea agrupar y elija la cantidad de grupos que desea encontrar. Hacer clic Ir ¡Y tendrás tu resultado! Si desea guardar las asignaciones de conglomerados, simplemente haga clic en el triángulo rojo al lado de su análisis de conglomerados y elija Guardar grupos !
Para ver un gráfico de sus grupos, haga clic en el triángulo rojo y seleccione Biplot .
Si desea probar varias k a la vez, simplemente agréguelas al Rango cuadro en la plataforma K-medias o Mezclas Normales. ¡Su salida ahora le mostrará la información para cada k! JMP elegirá el mejor k para usted. Mostrado bajo el Comparación de conglomerados menú.
Para k-medias, JMP (como SAS) utiliza el criterio de conglomerado cúbico (que es lo que significa CCC) para seleccionar qué k se ajusta mejor a sus datos. Los valores de CCC más altos son mejores e indican que sus grupos se ajustan bien a los datos, de manera similar a como lo hacen las puntuaciones de silueta. JMP elegirá el k que tenga el valor CCC más alto como su clúster óptimo. Para obtener más información sobre CCC, consulte aquí .

Para mezclas normales, JMP utiliza el AICc (Criterio de información de Akaike corregido) y el BIC (Criterio de información bayesiano) para elegir el mejor k. Tanto AIC como BIC (como las puntuaciones de silueta y CCC) miden qué tan bien un modelo (sus grupos, aquí) se ajusta a los datos. Los valores pequeños de AIC y BIC indican un buen ajuste del modelo, por lo que JMP elegirá la k que proporcione la más bajo Valores AIC/BIC (tenga en cuenta que faltan algunos valores AICc ya que el conjunto de datos es pequeño).
Conclusión
Ahora sabes cómo usar JMP para agrupar sus datos utilizando k-medias y modelos de mezclas gaussianas (o mezclas normales en JMP). Entonces, cuando obtienes un conjunto de datos excelente que no tiene etiquetas ni datos veraces, aún puedes crear información muy interesante utilizando ML no supervisado.