Tengo un conjunto de datos X que tiene 10 dimensiones, 4 de las cuales son valores discretos. De hecho, esas 4 variables discretas son ordinales, es decir, un valor más alto implica una semántica más alta / mejor.
2 de estas variables discretas son categóricas en el sentido de que para cada una de estas variables, la distancia, por ejemplo, de 11 a 12 no es la misma que la distancia de 5 a 6. Mientras que un valor de variable más alto implica un mayor en realidad, la escala es no necesariamente lineal (de hecho, no está realmente definido).
Mi pregunta es:
- ¿Es una buena idea aplicar un algoritmo de agrupamiento común (p. Ej., K-Means y luego Gaussian Mixture (GMM)) a este conjunto de datos que contiene variables discretas y continuas?
Si no:
- ¿Debo eliminar las variables discretas y enfocarme solo en las continuas?
- ¿Debería mejor discretizar los continuos y usar un algoritmo de agrupamiento para datos discretos?
Respuestas:
Entonces le han dicho que necesita una medida de distancia adecuada. Aquí hay algunas pistas:
y, por supuesto: distancia de Mahalanobis .
fuente
He tenido que lidiar con este tipo de problema en el pasado, y creo que podría haber 2 enfoques interesantes:
Continuousification: transforma atributos simbólicos con una secuencia de enteros. Hay varias formas de hacer esto, todas las cuales se describen en este documento . Puede probar los algoritmos NBF, VDM y MDV.
Discretización: transforma atributos continuos en valores simbólicos. Una vez más, muchos algoritmos, y una buena conferencia sobre esto sería este artículo . Creo que el método más utilizado es el 1R de Holte, pero la mejor manera de saberlo con certeza es mirar las curvas ROC contra algoritmos como EWD, EFD, ID, LD o NDD.
Una vez que tenga todas sus funciones en el mismo espacio, se convierte en un problema de agrupamiento habitual.
Elegir entre la continuación o la discretización depende de su conjunto de datos y de cómo se ven sus características, por lo que es un poco difícil de decir, pero le aconsejo que lea los artículos que le di sobre ese tema.
fuente
K-means obviamente no tiene ningún sentido, ya que computa los medios (que no tienen sentido). Lo mismo vale para GMM.
Es posible que desee probar algoritmos de agrupación basados en distancia con funciones de distancia apropiadas, por ejemplo DBSCAN.
¡El desafío principal es encontrar una función de distancia!
Si bien podría poner una función de distancia diferente en k-medias, todavía calculará la media que probablemente no tenga mucho sentido (y probablemente se confunda con una función de distancia para valores discretos).
De todos modos, primero concéntrese en definir qué es "similar" . ¡Luego agrupa usando esta definición de similar!
fuente
Si se siente cómodo trabajando con una matriz de distancia de tamaño
num_of_samples x num_of_samples
, también podría usarlorandom forests
.Haga clic aquí para obtener un documento de referencia titulado
Unsupervised learning with random forest predictors
.La idea es crear un conjunto de datos sintético por
shuffling
valores en el conjunto de datos original y entrenar a un clasificador para separar ambos. Durante la clasificación obtendrá uninter-sample distance matrix
, en el que podría probar su algoritmo de agrupamiento favorito.fuente
Enfoque mixto a adoptar: 1) Use la técnica de clasificación (árbol de decisión C4.5) para clasificar el conjunto de datos en 2 clases. 2) Una vez hecho esto, deje variables categóricas y proceda con variables continuas para la agrupación.
fuente