XGBRegressor参数详解
XGBRegressor参数详解。
·
XGBRegressor参数详解:
import xgboost as xgb
from xgboost import plot_importance
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
from sklearn.metrics import mean_squared_error
# 导入数据集
boston = load_boston()
X ,y = boston.data,boston.target
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=0)
model = xgb.XGBRegressor(max_depth=3, # 每一棵树最大深度,默认6;
learning_rate=0.1, # 学习率,每棵树的预测结果都要乘以这个学习率,默认0.3;
n_estimators=100, # 使用多少棵树来拟合,也可以理解为多少次迭代。默认100;
objective='reg:linear', # 此默认参数与 XGBClassifier 不同
booster='gbtree', # 有两种模型可以选择gbtree和gblinear。gbtree使用基于树的模型进行提升计算,gblinear使用线性模型进行提升计算。默认为gbtree
gamma=0, # 叶节点上进行进一步分裂所需的最小"损失减少"。默认0;
min_child_weight=1, # 可以理解为叶子节点最小样本数,默认1;
subsample=1, # 训练集抽样比例,每次拟合一棵树之前,都会进行该抽样步骤。默认1,取值范围(0, 1]
colsample_bytree=1, # 每次拟合一棵树之前,决定使用多少个特征,参数默认1,取值范围(0, 1]。
reg_alpha=0, # 默认为0,控制模型复杂程度的权重值的 L1 正则项参数,参数值越大,模型越不容易过拟合。
reg_lambda=1, # 默认为1,控制模型复杂度的权重值的L2正则化项参数,参数越大,模型越不容易过拟合。
random_state=0) # 随机种子
model.fit(X_train,y_train, eval_set=[(X_train, y_train), (X_test, y_test)], eval_metric='rmse', verbose=50)
# 对测试集进行预测
ans = model.predict(X_test)
mse = mean_squared_error(y_test,ans)
print('mse:', mse)
# 显示重要特征
plot_importance(model)
plt.show()
更多推荐
已为社区贡献1条内容
所有评论(0)