2011-12-21 10 views

Respuesta

15

Los métodos de árbol no funcionarán, porque el número de posibles divisiones aumenta exponencialmente con el número de niveles. Sin embargo, con las palabras esto generalmente se aborda al crear variables de indicador para cada palabra (de la descripción, etc.) - de esa manera las divisiones pueden usar una palabra a la vez (sí/no) en lugar de elegir todas las combinaciones posibles. En general, siempre puede expandir los niveles en indicadores (y algunos modelos lo hacen implícitamente, como glm). Lo mismo es cierto en ML para manejar el texto con otros métodos como SVM, etc. Por lo tanto, la respuesta puede ser que necesita pensar en la estructura de datos de entrada, no tanto en los métodos. Alternativamente, si tiene algún tipo de orden en los niveles, puede linealizarlo (por lo que solo hay c-1 splits).

3

No hay nada de malo en la teoría con el uso del método randomForest en las variables de clase que tienen más de 32 clases: es computacionalmente costoso, pero no imposible manejar cualquier cantidad de clases usando la metodología randomForest. El paquete R normal randomForest establece 32 como un número máximo de clases para una variable de clase dada y, por lo tanto, prohíbe al usuario ejecutar randomForest en cualquier cosa con> 32 clases para cualquier variable de clase.

Linearlizar la variable es una muy buena sugerencia. He utilizado el método de clasificar las clases, y luego dividirlas uniformemente en 32 metaclases. Entonces, si en realidad hay 64 clases distintas, la metaclase 1 consiste en todas las cosas de la clase 1 y 2, etc. El único problema aquí es encontrar una forma sensata de hacer la clasificación, y si está trabajando con, por ejemplo, Es muy difícil saber cómo se debe clasificar cada palabra en contra de cada palabra.

Una forma de evitar esto es hacer diferentes conjuntos de predicción, donde cada conjunto contiene todas las instancias con cualquier subconjunto particular de 31 de las clases en cada variable de clase con más de 32 clases. Puede hacer una predicción usando todos los conjuntos, luego usar medidas de importancia variable que vienen con el paquete, encontrar la implementación donde las clases utilizadas fueron más predictivas. Una vez que haya descubierto las 31 clases más predictivas, implemente una nueva versión de RF usando todos los datos que designen estas clases más predictivas como 1 a 31, y todo lo demás en una "otra" clase, dándole el máximo de 32 clases para el variable categórica pero con la esperanza de conservar gran parte del poder predictivo.

¡Buena suerte!

5

En general, el mejor paquete que he encontrado para situaciones donde hay muchos niveles de factores es usar el paquete gbm.

Puede manejar hasta 1024 niveles de factor.

Si hay más de 1024 niveles, generalmente cambio los datos al mantener los 1023 niveles de factor más frecuentes y luego los niveles restantes en un solo nivel.

Cuestiones relacionadas