You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过mlr3调用importance_pvalues命令?若不能如何提取ranger对象?

在mlr3中使用ranger的importance_pvalues函数获取变量重要性p值

mlr3的ranger学习器无法直接在调用时指定输出变量重要性p值,但可以通过提取底层训练好的ranger模型对象,再调用importance_pvalues函数来实现,具体步骤如下:

  • 步骤1:训练mlr3的ranger学习器
    首先要确保初始化学习器时开启变量重要性计算,示例代码:

    library(mlr3)
    library(mlr3learners)
    library(ranger)
    
    # 创建分类任务(以iris数据集为例)
    task <- TaskClassif$new(id = "iris", backend = iris, target = "Species")
    
    # 初始化ranger学习器,指定变量重要性计算方式为排列法
    learner <- lrn("classif.ranger", importance = "permutation")
    
    # 训练模型
    learner$train(task)
    
  • 步骤2:提取底层ranger模型对象
    mlr3训练完成的模型存储在学习器的$model属性中,直接提取即可:

    ranger_model <- learner$model
    
  • 步骤3:调用importance_pvalues计算p值
    将提取到的ranger模型传入函数,可根据需求设置置换次数等参数:

    # 计算变量重要性p值,设置1000次置换
    importance_pvals <- importance_pvalues(ranger_model, num.permutations = 1000)
    print(importance_pvals)
    

注意事项

训练ranger学习器时必须设置importance参数为"permutation"或"impurity"等支持的类型,否则importance_pvalues函数会因模型未计算变量重要性而报错。

内容的提问来源于stack exchange,提问作者DeLuca Lab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:05:43