Mentre aumenta il numero di alberi in scikit imparare s' GradientBoostingRegressor
, ho previsioni più negative, anche se non ci sono valori negativi nella mia formazione e testing set. Ho circa 10 funzioni, la maggior parte delle quali binarie.
Alcuni dei parametri che stavo sintonizzando erano:
- il numero di alberi / iterazioni;
- profondità di apprendimento;
- e tasso di apprendimento.
La percentuale di valori negativi sembrava al massimo a ~ 2%. La profondità di apprendimento di 1 (ceppi) sembrava avere la percentuale maggiore di valori negativi. Questa percentuale sembrava anche aumentare con più alberi e un tasso di apprendimento più piccolo. Il set di dati proviene da una delle competizioni del parco giochi Kaggle.
Il mio codice è simile a:
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)