Necesito alguna sugerencia para el método de agrupamiento (clasificación no supervisada) para un proyecto de consultoría. Estoy buscando un método que tenga las siguientes propiedades:
El tema de mi estudio tiene tres propiedades. Uno está representado por una matriz de distancia (no euclidiana) y los otros dos están en forma de vectores en el espacio euclidiano. La matriz de distancia proviene de secuencias y puede estar en forma de porcentaje de disimilitud u otra medida de distancia de secuencias. El algoritmo debería poder tomar ambos vectores en el espacio euclidiano y la distancia no euclidiana como entrada. Por ejemplo, los K-medoides pueden funcionar con una matriz de distancia, pero K-means no.
Me gustaría que el algoritmo seleccione automáticamente el número de clústeres y el peso de tres propiedades (con conocimiento y restricción previos).
Tengo información de "centros de agrupaciones" previamente identificados. Me gustaría incorporarlo como valores anteriores o iniciales.
Como estadístico, preferiría que el método tenga una clara función de probabilidad o pérdida.
Lo más parecido que se me ocurre es ajustar un modelo de mezcla en el marco bayesiano utilizando MCMC de salto inverso para determinar el número de clústeres. Los vectores en R ^ d pueden formularse fácilmente en una probabilidad normal, pero no estoy claro cómo tratar con la matriz de distancia. Puedo restringir la media de probabilidad normal de estar en cada una de las observaciones para que el MCMC se ejecute, pero eso no tiene un significado matemático / estadístico claro.
¿Alguien tiene experiencia con un problema similar? Sugerencia de referencias será muy apreciada!
fuente
Respuestas:
Creo que usar un criterio MAP / Bayesiano en combinación con una mezcla de gaussianos es una elección sensata. Puntos
Por supuesto, objetará que los MOG requieren datos de entrada euclidianos . La respuesta es encontrar un conjunto de puntos que den lugar a la matriz de distancia que se le da. Una técnica de ejemplo para esto es el escalado multidimensional:argmin{Xyo}∑i , j( | |Xyo-XjEl |El |2-reyo j)2 dónde reyo j es la distancia del punto yo apuntar j .
fuente
Enfrenté un problema para mi tesis en el que tenía que agrupar en un conjunto de datos para el que solo tenía una matriz de similitud (= distancia inversa). Aunque estoy 100% de acuerdo en que una técnica bayesiana sería la mejor, lo que elegí fue un modelo discriminatorio llamado Codificación convexa simétrica ( enlace ). Recuerdo que funcionó bastante bien.
En el frente bayesiano, tal vez podría considerar algo similar a la agrupación, pero no? Estoy pensando en la línea de Asignación de Dirichlet Latente, un algoritmo realmente maravilloso. Totalmente generativo, desarrollado en el contexto del modelado de contenidos temáticos en corpus de documentos de texto. Pero encuentra muchas aplicaciones en otros tipos de problemas de aprendizaje automático no supervisados. Por supuesto, la función de distancia ni siquiera es relevante allí ...
fuente
DBSCAN funciona sin conocer el número de clústeres antes de tiempo, y puede aplicar una amplia gama de métricas de distancia.
fuente
Podría usar propagación de afinidad o mejor propagación de afinidad adaptativa. Aquí está el enlace de Wikipedia .
Hay dos ventajas principales para su caso y otra tercera que creo que es una ventaja pero que puede no ser importante para usted.
No proporciona el número de clústeres. El número final de grupos depende del valor de preferencia y los valores de la matriz de similitud. La forma más fácil de trabajar con los valores de preferencia es usar el valor mínimo de la matriz de similitud (que no es cero) para obtener el menor número de grupos, luego intente, por ejemplo, el máximo para la mayor cantidad de grupos posible y continúe con la mediana valor y así sucesivamente ... O Use el algoritmo de propagación de afinidad adaptativa y determine la preferencia determinada por el algoritmo.
Puede proporcionar cualquier medida de similitud que se le ocurra o tomar el inverso de una medida de distancia (tal vez evite dividir por cero cuando lo haga).
3. (punto extra) El algoritmo elige un ejemplar que represente cada grupo y qué ejemplos pertenecen a él. Esto significa que el algoritmo no le da un promedio arbitrario sino un punto de datos real. Sin embargo, aún puede calcular promedios más tarde, por supuesto. ¡Y esto también significa que el algoritmo no usa promedios intermitentes!
Software: Hay varios paquetes listados para Java, Python y R en la página de Wikipedia. Si amas MATLAB, como a mí, entonces aquí hay una implementación.
fuente