XGRegressor参数设置
XGBoost是Gradient Boosted Decision Trees (梯度增强决策树)的一种实现,sklearn中也有实现方法,但与其相比来说有更多的优点。
先使用模型预测结果,然后用误差估计模型进行的误差估计,重复地进行这个过程,并将新误差估计模型集成到模型中。对开始的估计的准确度要求不高,因为可以在后面的误差估计中进行弥补,其输入必须是DataFrame类型的数据。
使模型的准确率达到峰值,要进行参数调优。
- n_estimator:迭代次数(太小 underfit 太大overfit)
- n_job:并行计算 (一般与机器内核数相等,减小训练花费的时间)
- learning_rate:集成模型时,要乘以一个小数,避免过拟合,默认0.05
- early_stopping_rounds:当准确率不再提高时,停止迭代。为了减小偶然性,进行N次检验,一般为5
from xgboost import XGBRegressor
my_model = XGBRegressor(n_estimators=1000, learning_rate=0.05)
my_model.fit(train_X, train_y, early_stopping_rounds=5,
eval_set=[(test_X, test_y)], verbose=False)