解释因子变量的变量重要性 (varImp)

机器算法验证 r 随机森林 插入符号
2022-02-28 18:34:34

当我在随机森林(或任何其他模型)上运行变量重要性时,因子/分类变量名称以因子名称作为后缀。例如,

SALARY ~ STATE + CITY + AGE + …, the result of varImp(model) could look like,

> varImp(model)
rf variable importance

only 20 most important variables shown (out of 1050)

                      Importance
AGE                       100.00
STATECA                    91.84
STATEAZ                    86.24
CITYSTANFORD               74.15
STATEVT                    71.27

就相对重要性而言,将其解释为 AGE 是最重要的预测因子是否正确,其次是 STATE,然后是 CITY?

重要性值也没有说明预测变量和结果之间的关系——例如,更高的年龄是否等于更高的薪水,STATE CA 是否意味着更高的薪水,等等。关于如何获得这些度量的任何建议“黑盒”模型,如随机森林、gbm 等将非常有帮助。

1个回答

随机森林变量重要性分数是聚合度量。他们只量化预测变量的影响,而不是具体的影响。

您可以将其他预测变量固定为单个值,并通过单个参数获取预测值的配置文件(请参阅包partialPlot中的内容randomForest)。否则,拟合一个参数模型,您可以在其中估计特定的结构项。

您的另一个问题是关于CITYand的效果STATE您可能在创建模型时使用了公式接口(即function(y ~ ., data = dat))。在这种情况下,公式接口可能会将因子分解为虚拟变量(应该如此)。x您可以尝试使用具有预测变量(以因子形式) 的非公式接口,y即结果和调用function(x, y)这将避免创建虚拟变量并将因子预测器视为一个内聚集。