¿Por qué la regresión de Gradient Boosting predice valores negativos cuando no hay valores y negativos en mi conjunto de entrenamiento?

8

Como puedo aumentar el número de árboles en scikit aprender 's GradientBoostingRegressor, consigo predicciones más negativas, a pesar de que no hay valores negativos en mi entrenamiento o de prueba establecido. Tengo alrededor de 10 características, la mayoría de las cuales son binarias.

Algunos de los parámetros que estaba ajustando fueron:

  • el número de árboles / iteraciones;
  • profundidad de aprendizaje;
  • y tasa de aprendizaje.

El porcentaje de valores negativos parecía alcanzar un máximo de ~ 2%. La profundidad de aprendizaje de 1 (tocones) parecía tener el mayor porcentaje de valores negativos. Este porcentaje también pareció aumentar con más árboles y una tasa de aprendizaje menor. El conjunto de datos es de una de las competiciones de juegos infantiles de kaggle.

Mi código es algo como:

from sklearn.ensemble import GradientBoostingRegressor

X_train, X_test, y_train, y_test = train_test_split(X, y)

reg = GradientBoostingRegressor(n_estimators=8000, max_depth=1, loss = 'ls', learning_rate = .01)

reg.fit(X_train, y_train)

ypred = reg.predict(X_test)
usuario2592989
fuente
1
¿Alguna posibilidad de un ejemplo reproducible con código y datos?
Spacedman
2
¿Qué competencia de juegos es?
TheAxeR

Respuestas:

8

En general, los modelos de regresión (cualquiera) pueden comportarse de manera arbitraria más allá del dominio abarcado por las muestras de entrenamiento. En particular, son libres de asumir la linealidad de la función modelada, por lo que si, por ejemplo, entrena un modelo de regresión con puntos:

X     Y
10    0
20    1
30    2

Es razonable construir un modelo f(x) = x/10-1que x<10devuelva valores negativos.

Lo mismo se aplica "entre" sus puntos de datos, siempre es posible que debido a la supuesta familia de funciones (que puede modelarse mediante un método particular) obtendrá valores "de sus muestras de entrenamiento".

Puedes pensar en esto de otra manera: "¿qué tienen de especial los valores negativos?", ¿Por qué encuentras extraña la existencia de valores negativos (si no se proporciona en el conjunto de entrenamiento) mientras no te alarmas por la existencia de, digamos? .. valor 2131.23? A menos que se desarrolle de tal manera, ningún modelo tratará los valores negativos "diferentes" que los positivos. Este es solo un elemento natural de los valores reales que se puede obtener como cualquier otro valor.

lejlot
fuente
Con respecto a su conjunto de preguntas, creo que es puramente más fácil identificar los valores negativos como anomalías porque tienen ese "-" delante de ellos o claramente van por debajo de cero en los gráficos. La pregunta podría ser fácilmente "¿Por qué la regresión de aumento de gradiente predice valores nunca vistos anteriormente?". ¿Tal vez podrías tratar de ampliar eso? Ciertamente te conseguiría un voto positivo de mi parte.
josh
@lejlot: en general, esto no es cierto. Los modelos de regresión con activaciones logísticas, o tanh, a menudo tienen garantizados resultados dentro de ciertos límites.
user48956
@ user48956 los estados de respuesta "pueden comportarse de manera arbitraria", no estoy afirmando que no pueda forzar algunas restricciones, por supuesto que puede - la respuesta solo afirma que no hay una restricción "dependiente de datos" (a menos que tenga un modelo muy específico que tenga este construcción integrada): si agrega esto manualmente como experto, depende de usted.
lejlot
5

Recuerde que el GradientBoostingRegressor(suponiendo una función de pérdida de error al cuadrado) ajusta sucesivamente los árboles de regresión a los residuos de la etapa anterior. Ahora, si el árbol en la etapa i predice un valor mayor que la variable objetivo para un ejemplo de entrenamiento en particular, el residuo de la etapa i para ese ejemplo será negativo, por lo que el árbol de regresión en la etapa i + 1 enfrentará valores objetivos negativos (que son los residuos de la etapa i). A medida que el algoritmo de refuerzo agrega todos estos árboles para hacer la predicción final, creo que esto puede explicar por qué puede terminar con predicciones negativas, a pesar de que todos los valores objetivo en el conjunto de entrenamiento fueron positivos, especialmente cuando mencionó que esto sucede más a menudo cuando aumenta la cantidad de árboles.

Milad Shahidi
fuente
Esta es la respuesta correcta.
hahdawg