Xgboost: ¿Es necesario deshacerse de características inútiles en la tarea de clasificación en xgboost?

Creado en 14 mar. 2017  ·  3Comentarios  ·  Fuente: dmlc/xgboost

Tengo más de 650 funciones y uso xgboost para clasificar la importancia de estas funciones. La función es get_score () que devuelve la ocurrencia de características al construir árboles.

Cuando verifico el resultado, hay casi 150 funciones cuya puntuación está por debajo de 20. algunas de ellas son cero. Me deshago de estas características y veo si el modelo tendrá un mejor rendimiento. Pero el resultado es casi el mismo que el anterior. Entonces, ¿es necesario deshacerse de estas características que no son importantes?

En el resultado del experimento, el nuevo orden de importancia de las características no es como el orden anterior. Algunos que no eran demasiado importantes se vuelven importantes. Me refiero a que el orden de importancia de las características no es constante. ¿Por qué no es estable?

Comentario más útil

En la mayoría de los algoritmos de aprendizaje automático, es importante realizar selecciones de funciones para evitar un ajuste excesivo.

En boost, y especialmente en xgboost, el entrenamiento se hace para que generalices tanto como sea posible (aprendiz débil, aproximación taylor, aprendizaje estocástico, ...) lo que lo hace robusto al sobreajuste (dicho esto, puedes sobreajustar encaja si realmente lo quieres :) -> gran número de iteraciones, alta tasa de aprendizaje, sin aprendizaje estocástico ...). Para responder a sus preguntas, deshacerse de las características irrelevantes puede ser importante en algún momento. Supongamos que tiene valores atípicos, puede comenzar a usar esas características irrelevantes para clasificar los valores atípicos durante el proceso de aprendizaje y esto no es bueno.

Para su segunda pregunta, no hay una sola forma de combinar a los estudiantes débiles para lograr buenos resultados. sin embargo, para obtener diferentes combinaciones (y diferentes importancias de características) debe usar cierta aleatoriedad durante su proceso de entrenamiento, como submuestra, max_features ... Otra posibilidad es que tenga características redundantes. Debe verificar la correlación entre ellos.

En resumen, si sabe que una función es inútil: elimínela. Si no lo sabe, dígales que siempre es bueno eliminar las características irrelevantes, ya que ralentizará el entrenamiento de su modelo.

Todos 3 comentarios

En la mayoría de los algoritmos de aprendizaje automático, es importante realizar selecciones de funciones para evitar un ajuste excesivo.

En boost, y especialmente en xgboost, el entrenamiento se hace para que generalices tanto como sea posible (aprendiz débil, aproximación taylor, aprendizaje estocástico, ...) lo que lo hace robusto al sobreajuste (dicho esto, puedes sobreajustar encaja si realmente lo quieres :) -> gran número de iteraciones, alta tasa de aprendizaje, sin aprendizaje estocástico ...). Para responder a sus preguntas, deshacerse de las características irrelevantes puede ser importante en algún momento. Supongamos que tiene valores atípicos, puede comenzar a usar esas características irrelevantes para clasificar los valores atípicos durante el proceso de aprendizaje y esto no es bueno.

Para su segunda pregunta, no hay una sola forma de combinar a los estudiantes débiles para lograr buenos resultados. sin embargo, para obtener diferentes combinaciones (y diferentes importancias de características) debe usar cierta aleatoriedad durante su proceso de entrenamiento, como submuestra, max_features ... Otra posibilidad es que tenga características redundantes. Debe verificar la correlación entre ellos.

En resumen, si sabe que una función es inútil: elimínela. Si no lo sabe, dígales que siempre es bueno eliminar las características irrelevantes, ya que ralentizará el entrenamiento de su modelo.

Gracias. Eliminé casi 150 características que no son importantes. Pero el auc del nuevo experimento no se modifica. Así que no he encontrado ningún beneficio al eliminarlos.

El beneficio, si no mejora la medida de rendimiento, será el tiempo de formación. Los árboles de decisión utilizan un enfoque codicioso para encontrar la mejor división, por lo tanto, más funciones = más divisiones para probar.

¿Fue útil esta página
0 / 5 - 0 calificaciones