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)