微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解释和控制 XGBRegressor 树模型选择的参数

如何解决如何解释和控制 XGBRegressor 树模型选择的参数

我正在使用 scikit-learn 对连续变量进行预测

数据:

  • 功能geneName,diseaseName,drugName,EI,EL,DPI,DSI,pLI
  • 要预测的列:Decision

数据类型:
我正在使用基于频率的编码将分类geneName,drugName 转换为数值,(每列有超过 100 个类别) EL 列有 6 个类别,我使用标签编码将其映射为数值

训练模型:
我正在使用这些超参数训练模型:

import xgboost as xgb
xgbr=xgb.XGBRegressor(
    colsample_bytree=0.8,max_depth=15,n_estimators=1000,reg_alpha=1.1,reg_lambda=1.3,subsample=0.7)
xgbr.fit(x_train,y_train)

结果: 训练模型后,这些指标的结果如下:

score : 0.9855
Mean cross-validation score: 0.97
MSE: 0.00035
RMSE: 0.01874

交叉验证计算如下:

kfold = KFold(n_splits=10,shuffle=True)
kf_cv_scores = cross_val_score(xgbr,x_train,y_train,cv=kfold )

并给了:

K-fold CV average score: 0.97

这是模型树打印的图像:tree model image

我的问题:

  1. 打印树模型,我看到许多树叶节点的值为 -0。为什么?
  2. 如何控制树中使用的选择参数?因为看起来 xgboost 正在选择同一变量的多个拆分。
  3. 您对这些预测有何看法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。