机器学习中的集成方法与降维技术
1. 梯度提升中的早停策略
在梯度提升中,除了先训练大量树然后回溯找到最优数量的方法外,还可以通过实际提前停止训练来实现早停。可以通过设置 warm_start=True 来实现,这会让Scikit - Learn在调用 fit() 方法时保留现有的树,从而允许增量训练。以下代码展示了在验证误差连续五次迭代没有改善时停止训练的实现:
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error
gbrt = GradientBoostingRegressor(max_depth=2, warm_start=True)
min_val_error = float("inf")
error_going_up = 0
for n_estimators in range(1, 120):
gbrt.n_estimators = n_estimators
gbrt.fit(X_train, y_train)
y_pred = gbrt.predict(X_val)
val_error = mean_squared_error(y_val, y_pred)
if val_error < min_val_error:
min_val_error = val_error
error_going_up = 0
els
超级会员免费看
订阅专栏 解锁全文
1353

被折叠的 条评论
为什么被折叠?



