Como eu aumentar o número de árvores em scikit aprender 's GradientBoostingRegressor, eu recebo previsões mais negativas, mesmo que não existem valores negativos em meu treinamento ou testar set. Eu tenho cerca de 10 recursos, a maioria dos quais são binários.
Alguns dos parâmetros que eu estava ajustando foram:
- o número de árvores / iterações;
- profundidade de aprendizagem;
- e taxa de aprendizado.
A porcentagem de valores negativos parecia máxima em ~ 2%. A profundidade de aprendizado de 1 (tocos) parecia ter o maior% de valores negativos. Esse percentual também parecia aumentar com mais árvores e uma menor taxa de aprendizado. O conjunto de dados é de uma das competições do playground kaggle.
Meu código é 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)