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

2024-09-28 01:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scikit学习对连续变量进行预测

数据:

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

数据类型:
我使用基于频率的编码将分类列geneName, diseaseName, 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. 你对这些预测有什么看法

Tags: 模型编码参数trainreg类别el数值

热门问题