5 votos

Elegir un modelo para mi problema de aprendizaje automático no supervisado

Necesito elegir un modelo para un problema de aprendizaje automático no supervisado. Hay 4 clusters en el espacio 3D. Estos son mis requisitos:

  • Ejecutaré el mismo modelo varias veces con diferentes datos de entrenamiento (es para una aplicación en tiempo real).
  • Se espera que el tamaño de los datos de entrenamiento sea de unos 400 puntos.
  • Puedo suponer que los puntos de cada uno de los conglomerados se extraen de una distribución gaussiana. Esto no es un requisito necesario para estar presente en el modelo.
  • Necesito obtener 4 puntos que representen los "centros" de las agrupaciones.
  • En el tiempo de predicción, para cada nuevo punto necesito algún tipo de número para cada cluster que representará la probabilidad de pertenecer al cluster.
  • Tendré muchos valores atípicos, supongo que alrededor del 30%.

He probado el modelo de mezcla gaussiana, y funciona muy bien cuando no tengo valores atípicos. Por desgracia, este modelo es muy sensible a los valores atípicos.

¿Alguna sugerencia sobre cómo manejar los valores atípicos con el modelo de mezcla gaussiana? ¿O debería ir con un modelo completamente diferente?

4voto

throwaway Puntos 18

He aquí un par de sugerencias, dado que los modelos de mezcla gaussiana le funcionan bien en ausencia de valores atípicos.

Para aumentar la robustez frente a los valores atípicos, se podría utilizar un estimador recortado para los modelos de mezcla gaussiana en lugar de ajustar con el algoritmo EM estándar. Algunos artículos relevantes:

En lugar de los modelos de mezcla gaussiana, también podría considerar los modelos de mezcla T de los estudiantes. Esto le dará las mismas propiedades que desea (por ejemplo, la capacidad de calcular los centros de los clusters y las probabilidades de pertenencia). Las distribuciones T de Student tienen colas más pesadas que las gaussianas, lo que aumenta la solidez frente a los valores atípicos. Algunos artículos relevantes:

2voto

gpvos Puntos 103

Mira, puede que esta no sea la mejor idea, pero la sugeriré de todos modos.

Usted dice que está tratando con un problema de ML no supervisado, pero dijo que:

  • puede suponer que en este espacio de 4 dimensiones, sus datos son una gaussiana multivariante;

  • su modelo funciona bien cuando no hay muchos valores atípicos

Si puede permitirse el lujo de no asignar una clase a una observación atípica, opte por DBSCAN, como se ha mencionado, o HDBSCAN donde incluso se puede trabajar sin la suposición gaussiana.

Ahora, mi idea es: basándome en el hecho de que tu problema funciona bien cuando no hay valores atípicos te sugiero que conviertas este problema en uno supervisado siempre y cuando:

  • se tiene un número consistente de clusters cada vez que se ejecuta el algoritmo de clustering

  • los puntos se asignan sistemáticamente a los mismos grupos

Cuando se tiene un conjunto de datos etiquetados (después de la agrupación), se puede utilizar el algoritmo de clasificación más adecuado para asignar nuevos puntos a esos clusters, o trabajar en base a las probabilidades predichas (pista, KNN hace maravillas en espacios de baja dimensión, como el suyo).

Si todo funciona, los valores atípicos deberían clasificarse con una baja probabilidad de pertenecer a tout clusters, y puede programar su aplicación en línea para manejar estos casos.

1voto

zupash malik Puntos 11

Supongo que las cuatro agrupaciones necesarias tendrán una densidad algo similar. Si ese es el caso, puede utilizar un enfoque de agrupación basado en la densidad, DBSCAN ha funcionado bien para mí. Puedes encontrar todos los clusters que puedas durante el tiempo de entrenamiento y tener un umbral en el tamaño de los clusters para evitar que los valores atípicos formen parte de tus clusters deseados.

Utilizando esto, y un poco de conocimiento sobre lo que constituye un valor atípico, puedes mirar en los grupos y ver si los valores atípicos (ya que ~30% parece un poco en el extremo superior) forman ellos mismos un grupo.

Scikit-learn en python tiene una función incorporada para esto. sklearn.cluster.DBSCAN

1voto

DivyaJyoti Rajdev Puntos 166

Las banderas rojas se disparan en mi cabeza cuando alguien dice (parafraseando mucho)

Puedo asumir la propiedad X para mi algoritmo, pero esta peroperidad X no tiene por qué estar presente en los datos.

Esto señala inmediatamente posibles problemas de rendimiento y/o motivos para reevaluar el paso de selección del modelo.

Dicho esto, no he trabajado con GMM para el clustering más allá del algoritmo EM base para encontrar los parámetros de densidad de los puntos. Pero a mi entender, el clustering usando GMM es difuso, es decir, dependiendo de los métodos de implementación se puede variar la asignación de cluster en base a algunos criterios de interés.

A partir de este enfoque, recomiendo mapas autoorganizativos que agrupan semánticamente elementos similares. Como segundo paso, se puede aplicar la agrupación (clustering) por encima. ( Referencia )

Además, cuando se trabaja con modelos mixtos, explorar los métodos kernel puede ser bastante fructífero ya que ahora, sus límites de decisión pueden ser más expresivos en un espacio de mayor dimensión. Aquí está un artículo que habla teóricamente sobre cómo hacer más robustos los métodos comunes de clustering usando kernel, cubre también datos con mezcla de densidades gaussianas.

0voto

daduffer Puntos 297

¿Sólo 3 dimensiones y el 30% de sus datos son valores atípicos? Eso no parece encajar con lo que normalmente considero un valor atípico. Tal vez pueda transformar sus variables a escala logarítmica o "limitar" los valores atípicos para que no se alejen más de 3 ó 4 desviaciones estándar de la media. Sin embargo, esto puede crear grupos de puntos sin varianza.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X