我正在使用sklearn.ensemble.GradientBoostingRegressor
link,选项之一是将损失函数设置为Huber
。
Huber
方法本身link,具有参数epsilon
,用于指定对异常值的鲁棒性。
使用集成方法时是否无法设置epsilon
参数?例如
from sklearn import ensemble
params = {'n_estimators': 300, 'max_depth': 3, 'min_samples_split': 2,
'learning_rate': 0.01, 'loss': 'huber', 'epsilon':1.0, 'alpha':.5, 'criterion':'mse', }
clf = ensemble.GradientBoostingRegressor(**params)
给予:
Traceback (most recent call last):
File "<ipython-input-6-875d10cdac68>", line 3, in <module>
clf = ensemble.GradientBoostingRegressor(**params)
TypeError: __init__() got an unexpected keyword argument 'epsilon'
即使1.11.4.5.1. Loss Functions本节说要使用alpha
来控制对异常值的鲁棒性,但这不同于epsilon
...