Red de conocimiento informático - Problemas con los teléfonos móviles - Comparación de tres métodos de cálculo de importancia de características en XGBoost

Comparación de tres métodos de cálculo de importancia de características en XGBoost

Importancia de las características, generalmente utilizamos para observar la contribución de diferentes características. Consideramos las características mejor clasificadas como características importantes. Esta idea se utiliza a menudo en el filtrado de funciones. Se utiliza para eliminar características de cola con una tasa de contribución baja para mejorar la robustez del modelo y desempeñar un papel en la reducción de la dimensionalidad de las características. Por otro lado, también se utiliza para lograr interpretabilidad de clases de modelo. El resultado que esperamos obtener es: las características importantes combinadas con la intuición empresarial se clasifican más arriba; En el trabajo real, generalmente utilizamos los puntos de clasificación del modelo de árbol para completar este trabajo. Los más utilizados son XGB y otros modelos de árbol generales.

Tres métodos de cálculo de la importancia de las características integrados en XGB 1: Peso

xgb.plot_importance Este es nuestro método de función comúnmente utilizado para dibujar la importancia de las características. El método de cálculo de la contribución utilizado es el peso.

?'weight': el número de veces que se utiliza la función al dividir los datos de todos los árboles.

En pocas palabras, es la cantidad de veces que se usa una característica al dividir un modelo de subárbol. Aquí se calcula para todos los árboles.

Tres métodos de cálculo de importancia de características integrados en XGB2: ganancia

model.feature_importances_Este es el método de función predeterminado que utilizamos cuando invocamos valores de importancia de características. El método de cálculo de la contribución utilizado detrás de esto es la ganancia.

"ganancia": la ganancia promedio utilizada por esta función en todas las divisiones.

Ganancia es el concepto general de ganancia de información.

La ganancia es el concepto general de ganancia de información. Aquí se refiere al valor promedio de la segmentación de nodos que esta característica aporta a la optimización de la ganancia de información (función objetivo).

Tres métodos integrados de cálculo de importancia de características XGB 3 - cover

model = XGBRFClassifier(importance_type = 'cover') Este método de cálculo debe definirse al definir el modelo. Luego llame a

model.feature_importances_ para obtener contribuciones basadas en cobertura.

"Cobertura": la cobertura promedio de esta función en todas las divisiones.

La cobertura se visualiza como el número de muestras cubiertas por nodos de hoja bajo una característica dividido por el número de divisiones que utilizan esa característica cuando se divide el modelo de árbol. Cuanto más cerca esté la división de la raíz, mayor será el valor de cobertura.

Escenarios de uso

Los pesos darán valores más altos a las características numéricas porque cuantas más variables tenga, más espacio podrá cortar al dividir el modelo de árbol. Por lo tanto, esta métrica enmascara importantes características de enumeración.

Gain utiliza el concepto de aumento de entropía, lo que facilita encontrar las características más directas. En otras palabras, si todos los ceros bajo una determinada característica son ceros bajo una determinada etiqueta, entonces la característica definitivamente tendrá una clasificación más alta.

la portada es más amigable con las funciones de enumeración. Además, no se ajusta demasiado a la función objetivo. No acepta la influencia del tamaño de la función objetivo.

El método de llamada es el siguiente

# tipos de importancia disponibles = ['weight', 'gain', 'cover', 'total_gain', 'total_cover']

f = "ganancia"

Grande, porque al calcular la ganancia de información, es posible que las optimizaciones posteriores ni siquiera tengan un orden de magnitud. De manera similar a la optimización de la función de pérdida en redes neuronales, la amplitud posterior puede diferir diez o cientos de veces.

Por lo tanto, en resumen, si hay partes comerciales posteriores, se recomienda más utilizar el método de cobertura para calcular la importancia de las características. Por supuesto, si se trata de un ajuste puro del modelo, la ganancia puede señalar las características más importantes. En algunos escenarios, estas características también pueden resumirse en reglas estrictas.

Otros métodos de cálculo de importancia 4 - permutación

Además de los métodos de cálculo de importancia integrados anteriores, existen otros métodos de cálculo de terceros.

permutación: si una característica es importante, si dividimos todas las muestras con esa característica, el objetivo de optimización final se verá afectado. El grado de compromiso aquí es la importancia de la característica. Dado que su cálculo se basa en una única característica, es más amigable con los modelos no lineales. Al mismo tiempo, si hay múltiples ****linealidades en la característica, entonces la importancia de la característica de las ****linealidades será muy baja. Esto se debe a que la ofuscación de una única característica no afecta la contribución de otra característica. Esto hace que las características se clasifiquen en un nivel muy bajo incluso si son importantes.

Para múltiples características lineales, la documentación de sklearn menciona una solución: calcular la correlación del rango de lancero entre características, obtener las características de la cabeza en cada grupo y luego calcular el sexo de importancia de la característica. En realidad, este método resuelve el problema de las líneas características.

Cálculo de la importancia de las características para otros modelos

Además, los modelos de árbol, bosque aleatorio y GBDT también tienen importancia de características incorporada. Las tareas de clasificación calculan la impureza de Gini/entropía de la información. La tarea de regresión calcula la varianza del árbol. Este método basado en la tasa media de disminución de impurezas (MDI) en realidad tiene dos problemas: (1) Prestará más atención a las características con un espacio variable más grande, mientras que las características dicotómicas pasarán a un segundo plano. (2) El ajuste de los resultados se basa en el conjunto de entrenamiento. Si no hay datos del conjunto de validación para la verificación, puede producirse un sobreajuste.

En respuesta a los problemas anteriores, se recomienda utilizar el método fuera de bolsa (OOB) para verificar los datos restantes y combinarlo con el método de permutación para calcular la importancia de las características. Además, GBDT también calcula la importancia de las características en función de las impurezas, pero se basa en un solo árbol, es decir, un árbol de regresión, por lo que no se basa en el coeficiente de Gini, sino en MSE o MAE.

En cuanto a por qué son el mismo modelo de árbol, todos se basan en la importancia del cálculo de impurezas, pero los resultados son diferentes. Hay dos razones principales: una es que sus estructuras de árbol son diferentes y la otra es que sus objetos de optimización son diferentes.