Seperti yang saya meningkatkan jumlah pohon di scikit belajar 's GradientBoostingRegressor
, saya mendapatkan prediksi yang lebih negatif, meskipun tidak ada nilai negatif dalam pelatihan saya atau pengujian set. Saya memiliki sekitar 10 fitur, yang sebagian besar adalah biner.
Beberapa parameter yang saya tuning adalah:
- jumlah pohon / iterasi;
- kedalaman belajar;
- dan tingkat belajar.
Persentase nilai negatif tampaknya maks ~ 2%. Kedalaman belajar 1 (tunggul) tampaknya memiliki% nilai negatif terbesar. Persentase ini juga tampaknya meningkat dengan lebih banyak pohon dan tingkat pembelajaran yang lebih kecil. Dataset ini berasal dari salah satu kompetisi taman bermain kaggle.
Kode saya kira-kira seperti:
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)