← 15 · ¿Se pueden segmentar los clientes? H14
La mezcla gaussiana asigna cada punto con una probabilidad y aquí casi nunca duda
¿Qué se gana si el agrupamiento devuelve probabilidades en vez de etiquetas?
1 El problema
k-means reparte los 12.953 puntos en cuatro grupos y asigna cada uno a un grupo sin matices. El que cae justo en la frontera entre dos grupos recibe la misma etiqueta que el que está en el centro del suyo.
Eso importa cuando la etiqueta decide algo. Mandar una campaña de recuperación a un cliente que estaba en la frontera cuesta lo mismo que mandarla a uno del centro del grupo y tiene menos probabilidades de acertar.
2 Por qué engaña
El problema está en la salida. Una lista de etiquetas tiene el mismo aspecto venga de donde venga. No indica en qué casos el algoritmo estaba dudando.
Con una silueta de 0,40 con cuatro grupos, que es baja, cabe esperar que haya bastantes puntos de frontera.
3 El principio
Como efecto secundario, sus grupos pueden ser alargados o inclinados. Los de k-means son siempre esféricos, porque solo usa la distancia al centro.
4 La solución
Ajustar las dos con los mismos cuatro grupos y comparar. Lo interesante es la columna que solo tiene una de las dos: la seguridad de cada asignación.
5 Qué pasa con estos datos
La mezcla asigna con una seguridad media de 0,999. El 99,9 % de los puntos va a su grupo con más de un 90 % de probabilidad y el 0,0 % queda por debajo del 60 %.
Lo que enseña es a no leer una seguridad alta como prueba de que hay grupos bien separados. Para eso está la silueta, que aquí es baja. Además, los tamaños de los grupos de la mezcla no se parecen a los de k-means, así que los dos algoritmos no están describiendo la misma división.
6 Para qué sirve
Cuando la etiqueta dispara una acción con coste. Con probabilidades se puede actuar solo sobre los seguros, dejar los dudosos para revisión y tener un criterio explícito en vez de una etiqueta sin más información.
Y como contraste. Ajustar una mezcla sobre los mismos datos que un k-means cuesta poco. Comparar los dos repartos muestra si los grupos se mantienen al cambiar de método.
El detalle técnico
Cuatro componentes con covarianza completa y semilla 42, sobre el mismo RFM tipificado que k-means. El BIC sale en -56.624, que sirve para comparar entre números de componentes y no para juzgar el ajuste por sí solo.
Ver la diferencia de salida
km = KMeans(n_clusters=4, random_state=42).fit(X)
gm = GaussianMixture(n_components=4, covariance_type="full", random_state=42).fit(X)
etiqueta = km.labels_ # un numero de grupo, sin mas
prob = gm.predict_proba(X) # una fila de probabilidades por punto
seguridad = prob.max(axis=1) # cuanto cree la mezcla en su propia respuesta
Fuente: segmentacion.json, campo h14_mezclas.