Tengo un conjunto de datos con unos 15.000 vectores que se dividen en tres clases, todas con el mismo número de vectores. Algunos de los datos son categóricos y otros numéricos, por lo que estoy utilizando DictVectorizer
para convertirla en una matriz dispersa. Esto realiza una codificación de un solo golpe de los datos categóricos. He aquí los hechos clave y mi problema.
- Si construyo un Bosque aleatorio Obtengo muy buena precisión en la clasificación. Uno contra resto me da más de 0,95 para el AUC, por ejemplo. Sin embargo, la regresión logística, por ejemplo, no da un buen resultado en absoluto (AUC de alrededor de 0,55). Por otro lado, un gran árbol de decisión con 1.000 hojas también da un AUC de alrededor de 0,9. Este es el AUC medio utilizando la validación cruzada.
- Sin embargo, no encuentro una forma no supervisada de agrupar los datos que dé un buen resultado. Por ejemplo, he intentado KMeans pero las agrupaciones que encuentra no están bien separadas.
El hecho de que el árbol de decisión funcione bien me hace sospechar que los datos tienen una forma muy particular que hace que KMeans (con la configuración por defecto al menos) no sea adecuado. Creo que tal vez necesito encontrar un método de agrupación que construya efectivamente un árbol de decisión para cada conglomerado.
¿Qué puedo hacer para agrupar estos datos?
Esto es más que nada un experimento por el momento para que pueda aprender más acerca de la agrupación, que es nuevo para mí. Si hay algo acerca de los datos que sería útil saber, por favor pregunte.