1 votos

¿Vale la pena explorar el error OOB para optimizar el bosque aleatorio?

La primera vez que utilicé Random Forest, me dio una precisión del 81% con estos parámetros n_estimadores:10, max_características: sqrt(20), min_samples_split: 2 y min_samples_leaf: 1

Entonces decidí optimizar.

1) He realizado una búsqueda aleatoria. Precisión: 89,76%, n_estimadores: 10, max_features:8, min_samples_split:6, min_samples_leaf:1. Esto tomó 19 minutos.

2) Luego leí que es una buena idea utilizar el error OOB para encontrar los valores óptimos para n_estimadores y max_figuras. Así que lo hice. El gráfico mostró que con menos de 100 árboles el error OOB es alto e inestable. Y que max_features 4 a 10 es bueno.

3) Así que ejecuté una vez más la búsqueda aleatoria. Pero he especificado que hay que buscar árboles de más de 100. Los mejores parámetros son: n_ estimadores: 127, max_features: 7, min_samples_split: 5 y min_samples_leaf: 1. Precisión: 91,56%. ¡¡¡¡¡Tiempo: 6 horas!!!!!

Como puede ver, el aumento de la precisión es de un 3% más. Pero ha tardado 6 horas.

Entonces, ¿merece la pena aumentar el número de árboles (n_estimadores) de 10 a 127?

0 votos

Probablemente deberías utilizar siempre el máximo número de árboles que puedas permitirte, no hay ningún inconveniente fuera del tiempo de entrenamiento.

1voto

M_1 Puntos 313

Breiman dijo en sus artículos originales en la revista Machine Learning que no fuera "tacaño" y que utilizara de 5.000 a 50.000 árboles, pero tenía mucha capacidad de cálculo. Recordemos que, en el caso de la RF, los objetos de la bolsa de arranque sólo se utilizan para el entrenamiento de los árboles, no para las pruebas. La prueba (es decir, el error) se determina cuando los objetos fuera de la bolsa (OOB) se dejan caer en los árboles entrenados, después de lo cual el error se basa en el porcentaje de pureza de la clase en los nodos finales cuando ya no se puede realizar la división de nodos. Las puntuaciones de importancia también se basan en la permutación de columnas basadas en características en los conjuntos de datos OOB, lo que da lugar a la pérdida de precisión predictiva en función de cada característica.

Nunca utilizo menos de 1.000 árboles para ninguna tirada de RF. Además, el número predeterminado de características seleccionadas aleatoriamente para la división de nodos en un árbol suele ser srqt(número total de características). Probablemente no necesite utilizar el enfoque de 6 horas de ejecución, ya que está buscando una mayor precisión. RF es uno de los mejores clasificadores, cuyo uso de parámetros por defecto debería ir bien en términos de sesgo/varianza y robustez a través de diferentes conjuntos de datos. Recuerde, los RFs generalizan mejor que otros clasificadores, por lo que el aumento de la generalización tiene el coste de una menor precisión - siempre me siento cómodo con una precisión del 75%-80% de RF, mientras que otros clasificadores pueden tener una precisión del 90-95%. Cuando se lanza un conjunto de clasificadores al mundo real, siempre se puede estar seguro de que el RF probablemente lo hará mejor que cualquiera de los otros clasificadores. No se falseará, y probablemente no se estropeará, etc.

0 votos

Cuando dice "estoy bien con un 75%-80% de precisión", ¿se refiere a la formación ¿datos? ¿Realmente importa la precisión de los datos de entrenamiento? Yo diría que es mejor ignorarlos por completo.

0 votos

No se sabe cuál es la precisión de predicción de la clase para los objetos de entrenamiento que están en las muestras de la bolsa, ya que nunca se determina. La exactitud sólo proviene de los objetos OOB que caen en los árboles entrenados. Es casi lo mismo para CV, donde sólo se predice la clase de los objetos de prueba en los pliegues cuyos objetos no se utilizan para el entrenamiento.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X