【问题标题】:Does the caret varImp wrapper for XGBoost xgbTree use XGBoost Gain?XGBoost xgbTree 的插入符号 varImp 包装器是否使用 XGBoost Gain?
【发布时间】:2020-04-25 05:23:13
【问题描述】:

使用 XGBoost xgb.importance 可以打印重要性矩阵,显示通过增益、覆盖率和频率测量的分类的可变重要性值。增益是可变重要性的推荐指标。 使用插入符号重采样 (repeatedcv, number=10, repeats =5)、特定的调整网格和训练 method = "xgbTree",插入符号 varImp() 函数显示从 0-100% 缩放的 k 倍特征重要性估计。

我的问题是插入符号varImp(xgbMod) 包装函数是使用增益还是使用增益、覆盖和频率的所有组合?

【问题讨论】:

    标签: r machine-learning r-caret


    【解决方案1】:

    一个小小的说明:

    插入符号 varImp() 函数显示 k 倍特征的重要性 估计范围为 0-100%。

    插入符号根据拟合的最终模型而不是交叉验证来估计特征重要性。交叉验证会告诉您适合模型的最佳超参数(例如 gamma 等)。

    是Gain,文档不多,我用一个例子查了一下:

    library(caret)
    data = MASS::Pima.tr
    set.seed(111)
    mdl = train(type ~ .,data=data,method="xgbTree",tuneLength=3,
    trControl=trainControl(method="cv"))
    

    您设置 scale=FALSE 来设置原始值:

    varImp(mdl,scale=FALSE)
    xgbTree variable importance
    
          Overall
    glu   0.37953
    age   0.19184
    ped   0.16418
    bmi   0.13755
    npreg 0.06450
    skin  0.04526
    bp    0.01713
    

    与 xgb.importance 比较:

    xgboost::xgb.importance(mdl$finalModel$feature_names,model=mdl$finalModel)
       Feature       Gain      Cover Frequency
    1:     glu 0.37953480 0.17966683      0.16
    2:     age 0.19183994 0.17190387      0.17
    3:     ped 0.16417775 0.26768973      0.28
    4:     bmi 0.13755463 0.09755036      0.09
    5:   npreg 0.06450183 0.10811269      0.11
    6:    skin 0.04526090 0.11229235      0.12
    7:      bp 0.01713014 0.06278416      0.07
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-24
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2016-05-26
      • 2016-07-05
      • 2019-01-16
      相关资源
      最近更新 更多