Estoy aplicando un algoritmo de bosque aleatorio como clasificador en un conjunto de datos de microarrays que se dividen en dos grupos conocidos con miles de características. Después de la ejecución inicial, miro la importancia de las características y ejecuto nuevamente el algoritmo del árbol con las 5, 10 y 20 características más importantes. Creo que para todas las funciones, las 10 y 20 principales, la estimación OOB de la tasa de error es del 1.19%, mientras que para las 5 funciones principales es del 0%. Esto me parece contrario a la intuición, así que me preguntaba si podría explicar si me falta algo o si estoy usando la métrica incorrecta.
I usando el paquete randomForest en R con ntree = 1000, nodeize = 1 y mtry = sqrt (n)
r
machine-learning
classification
random-forest
danielsbrewer
fuente
fuente
Respuestas:
Este es un sobreajuste de selección de características y esto es bastante conocido: vea Ambroise y McLachlan 2002 . El problema se basa en el hecho de que la RF es demasiado inteligente y la cantidad de objetos es demasiado pequeña. En el último caso, generalmente es bastante fácil crear aleatoriamente un atributo que pueda tener una buena correlación con la decisión. Y cuando el número de atributos es grande, puede estar seguro de que algunos de los totalmente irrelevantes serán muy buenos predictores, incluso lo suficiente como para formar un grupo que podrá recrear la decisión al 100%, especialmente cuando la enorme flexibilidad de Se considera RF. Por lo tanto, resulta obvio que cuando se le indica que busque el mejor subconjunto posible de atributos, el procedimiento FS encuentra este clúster.
Se proporciona una solución (CV) en A & McL, también puede probar nuestro enfoque sobre el tema, elAlgoritmo de Boruta , que básicamente extiende el conjunto con "atributos de sombra" hechos al azar por diseño y compara su importancia de RF con la obtenida para los atributos reales para juzgar cuáles de ellos son realmente aleatorios y pueden eliminarse; Esto se repite muchas veces para que sea significativo. Boruta está más bien destinado a una tarea un poco diferente, pero por lo que mostraron mis pruebas, el conjunto resultante está libre del problema de sobreajuste de FS.
fuente
Pensé que agregaría una explicación intuitiva para este patrón.
En cada árbol de decisión que comprende el bosque aleatorio, los datos se dividen iterativamente a lo largo de dimensiones individuales. Crucialmente, este procedimiento implica
1) considerando solo un pequeño subconjunto seleccionado al azar de todas las variables explicativas, y
2) seleccionar la variable explicativa más fuertemente asociada dentro de este subconjunto de variables seleccionadas al azar para dividir los datos.
Por lo tanto, la probabilidad de que se seleccionen las n variables más importantes en cualquier nodo particular disminuye a medida que aumenta el número de variables explicativas. Por lo tanto, si se agrega una gran cantidad de variables que contribuyen con poco o ningún poder explicativo, automáticamente se produce un aumento en la tasa de error del bosque. Y a la inversa, elegir solo las variables más importantes para la inclusión probablemente conducirá a una disminución en la tasa de error.
Los bosques aleatorios son bastante robustos para esto y, por lo general, requiere una gran adición de estos parámetros de 'ruido' para reducir significativamente el rendimiento.
fuente