Red de conocimiento informático - Descarga de software - Detección de funciones (bosque aleatorio)

Detección de funciones (bosque aleatorio)

El bosque aleatorio puede medir la importancia de cada característica y podemos seleccionar las características más importantes en función de este índice de importancia. Sklearn utiliza bosques aleatorios para evaluar la importancia de las características. Después de entrenar el modelo de bosque aleatorio, puede obtener la importancia de cada característica llamando directamente al atributo feature_importances.

Generalmente, hay cientos de características en el conjunto de datos y es necesario seleccionar características que tengan un mayor impacto en los resultados para un mayor modelado. Los métodos relacionados incluyen análisis de componentes principales, lazo, etc. Aquí presentamos la detección a través de bosques aleatorios.

La idea de utilizar un bosque aleatorio para evaluar la importancia de las características es relativamente simple. Depende principalmente de la contribución de cada característica a cada árbol en el bosque aleatorio, luego toma el promedio y finalmente compara. las contribuciones entre diferentes características.

Los indicadores de medición de la contribución incluyen el coeficiente de Gini (gini) y la tasa de error OOB como indicadores de evaluación.

Punto de conocimiento derivado: aplicación de bosque aleatorio ponderado (utilizado para aumentar la probabilidad de reconocimiento de muestras pequeñas, mejorando así la precisión de la clasificación general)

Cuando se utiliza bosque aleatorio/árbol de carro, generalmente El valor de Gini se utiliza como criterio para segmentar nodos. En el bosque aleatorio ponderado (WRF), la esencia del peso es dar un peso grande a las clases pequeñas y un peso pequeño a las clases grandes. Es decir, se le dará un castigo mayor a la clase pequeña. Hay dos funciones de peso. El punto 1 se utiliza para calcular el valor de Gini a través del peso en la selección de puntos de división. La expresión es la siguiente:

Entre ellos, N representa el nodo no separado y N L y N R. representan los nodos separados respectivamente, los nodos izquierdo y derecho de, Wi es el peso de clase de las muestras de clase C, n i representa el número de varias muestras en el nodo y δ I es la cantidad de reducción de impurezas. Cuanto mayor sea el valor, mejor será el efecto de separación del punto de separación.

El segundo punto es utilizar el peso de clase para determinar la etiqueta de clase en el nodo terminal. La expresión es la siguiente:

Referencia: Configuración de peso de un bosque aleatorio de datos de muestra pequeña/. ver/07ba 98 CCA 0 c 7 aa 00 b 52 AFC 789 EB 172 ded 639998 html.

Aquí presentamos el uso del valor de Gini para evaluar. Usamos VIM para representar la puntuación de importancia de la variable y GI para representar el valor de Gini. Supongamos que hay m características X 1, X 2,...X c. Ahora necesitamos calcular la puntuación del índice de Gini VIM j de cada cambio de característica. La fórmula de cálculo del índice de Gini es la siguiente:

Entre ellos, K indica que hay K categorías y p mk indica la proporción de la categoría K en el nodo M (el cambio en el valor de Gini se calcula uno por uno para la característica M).

La importancia del índice de características.

Si el nodo donde aparece la característica X j en el árbol de decisión I está en el conjunto M, entonces la importancia de n árboles, entonces:

Finalmente, todos los puntajes de importancia obtenidos se normalizan para obtener la puntuación de importancia:

La importancia de las características devueltas a través del bosque aleatorio en sklearn:

Afortunadamente, sklearnsklearn ha encapsulado todo para nosotros, solo necesitamos llamar a la función.

Tomemos el vino en UCI como ejemplo y primero importemos el conjunto de datos.

Entonces, echemos un vistazo aproximado a qué tipo de conjunto de datos es en este momento.

El resultado es

Se puede ver que * * * hay tres categorías. Luego observe la información de los datos:

El resultado es

Se puede ver que * * * hay 13 características además de la etiqueta de clase y el tamaño del conjunto de datos. es 178.

Por convención, el conjunto de datos se divide en un conjunto de entrenamiento y un conjunto de prueba.

Bien, entonces se entrena el bosque aleatorio y se evalúa la importancia de las características. vamos a ver.

El resultado es

Correcto. Muy conveniente.

Si desea filtrar variables más importantes, puede hacerlo.

El resultado es

Mira, ¿no nos ayudó a seleccionar tres características con una importancia mayor que 0,15?

[1] Rashkar S. Aprendizaje automático con Python[M].

Yang Kai, Yan Hou, Li Kang. Puntuaciones de importancia de las variables forestales aleatorias y su progreso en la investigación[J].2015.