¿Alguien puede explicar por qué necesitamos una gran cantidad de árboles en un bosque aleatorio cuando la cantidad de predictores es grande? ¿Cómo podemos determinar la cantidad óptima de árboles?
fuente
¿Alguien puede explicar por qué necesitamos una gran cantidad de árboles en un bosque aleatorio cuando la cantidad de predictores es grande? ¿Cómo podemos determinar la cantidad óptima de árboles?
El bosque aleatorio utiliza el embolsado (selección de una muestra de observaciones en lugar de todas) y el método de subespacio aleatorio (selección de una muestra de características en lugar de todas ellas, en otras palabras, embolsado de atributos ) para hacer crecer un árbol. Si el número de observaciones es grande, pero el número de árboles es demasiado pequeño, entonces algunas observaciones se pronosticarán solo una vez o incluso en absoluto. Si el número de predictores es grande pero el número de árboles es demasiado pequeño, algunas características (teóricamente) pueden perderse en todos los subespacios utilizados. Ambos casos resultan en la disminución del poder predictivo aleatorio del bosque. Pero el último es un caso bastante extremo, ya que la selección del subespacio se realiza en cada nodo.
Durante la clasificación, la dimensionalidad del subespacio es (bastante pequeño,pes el número total de predictores) por defecto, pero un árbol contiene muchos nodos. Durante la regresión, la dimensionalidad del subespacio esp/3(lo suficientemente grande) por defecto, aunque un árbol contiene menos nodos. Entonces, la cantidad óptima de árboles en un bosque aleatorio depende de la cantidad de predictores solo en casos extremos.
Quiero agregar algo si tiene más de 1000 características que usted y 1000 filas que no puede tomar simplemente en número de árbol.
Mi sugerencia es que primero debe detectar el número de CPU y RAM antes de intentar iniciar la validación cruzada para encontrar la relación entre ellos y el número de árboles
si usa sikit learn en python, tiene la opción
n_jobs=-1
de usar todos los procesos, pero el costo de cada copia de datos del solicitante principal después de eso puede probar esta fórmulantree = sqrt (número de fila * número de columnas) / numberofcpu
fuente