如何理解 RandomForestExplainer 输出(R 包)
How to understand RandomForestExplainer output (R package)
我有以下代码,它基本上尝试使用 randomForest. What I'm really intersed in is to find what are the best features (variable) that explain the species classification. I found the package randomForestExplainer 从 iris
数据预测 Species
是最好的
达到目的。
library(randomForest)
library(randomForestExplainer)
forest <- randomForest::randomForest(Species ~ ., data = iris, localImp = TRUE)
importance_frame <- randomForestExplainer::measure_importance(forest)
randomForestExplainer::plot_multi_way_importance(importance_frame, size_measure = "no_of_nodes")
生成此图的代码结果:
根据情节,解释为什么Petal.Length和Petal.Width是最佳因素的关键因素是这些(解释基于vignette):
mean_min_depth
– 以参数 mean_sample, 指定的三种方式之一计算的平均最小深度
times_a_root
– Xj用于分裂根节点的树总数(即根据Xj的值将整个样本一分为二),
no_of_nodes
– 使用Xj进行分裂的节点总数(如果树很浅,通常等于no_of_trees),
我不太清楚为什么高 times_a_root
和 no_of_nodes
更好?低 mean_min_depth
更好?
对此的直观解释是什么?
vignette 信息没有帮助。
您希望统计模型或度量在 "power" 和 "parsimony" 之间取得平衡。 randomForest 在内部设计为将惩罚作为其实现简约的统计策略。此外,在任何给定样本中选择的变量数量将少于预测变量的总数。这允许在预测变量的数量超过数据集中的案例(行)数量时建立模型。早期拆分或分类规则可以相对容易地应用,但后续拆分变得越来越难以满足有效性标准。 "Power" 是正确分类不在子样本中的项目的能力,为此使用了代理,即所谓的 OOB 或 "out-of-bag" 项目。 randomForest 策略是多次执行此操作以建立一组具有代表性的规则,这些规则在假设袋外样本将公平代表整个数据集的 "universe" 的情况下对项目进行分类。
times_a_root
属于测量变量 "relative power" 与其 "competitors" 相比的类别。 times_a_root
统计量衡量一个变量在决策树中 "at the top" 的次数,即在选择分割标准的过程中它被首先选中的可能性有多大。 no_of_node
测量变量被选择的次数作为所有二次抽样中的分裂标准。
来自:
?randomForest # to find the names of the object leaves
forest$ntree
[1] 500
...我们可以看到得到一个分母,用于评估图中 y 轴上大致 200
值的含义。大约 2/5 的样本回归在顶部拆分标准中具有 Petal.Length
,而另外 2/5 的样本回归具有 Petal.Width
作为最重要变量的顶部变量。 500 人中大约有 75 人有 Sepal.Length
,而只有大约 8 或 9 人有 Sepal.Width
(...这是对数刻度。)在鸢尾花数据集的情况下,子样本至少会忽略其中一个每个子样本中的变量,因此 times_a_root
的最大可能值将小于 500。在这种情况下,200 的分数非常好,我们可以看到这两个变量都具有可比的解释能力。
no_of_nodes
统计数据汇总了在其任何节点中具有该变量的树的总数,请记住节点的数量将受到惩罚规则的限制。
我有以下代码,它基本上尝试使用 randomForest. What I'm really intersed in is to find what are the best features (variable) that explain the species classification. I found the package randomForestExplainer 从 iris
数据预测 Species
是最好的
达到目的。
library(randomForest)
library(randomForestExplainer)
forest <- randomForest::randomForest(Species ~ ., data = iris, localImp = TRUE)
importance_frame <- randomForestExplainer::measure_importance(forest)
randomForestExplainer::plot_multi_way_importance(importance_frame, size_measure = "no_of_nodes")
生成此图的代码结果:
根据情节,解释为什么Petal.Length和Petal.Width是最佳因素的关键因素是这些(解释基于vignette):
mean_min_depth
– 以参数 mean_sample, 指定的三种方式之一计算的平均最小深度
times_a_root
– Xj用于分裂根节点的树总数(即根据Xj的值将整个样本一分为二),no_of_nodes
– 使用Xj进行分裂的节点总数(如果树很浅,通常等于no_of_trees),
我不太清楚为什么高 times_a_root
和 no_of_nodes
更好?低 mean_min_depth
更好?
对此的直观解释是什么?
vignette 信息没有帮助。
您希望统计模型或度量在 "power" 和 "parsimony" 之间取得平衡。 randomForest 在内部设计为将惩罚作为其实现简约的统计策略。此外,在任何给定样本中选择的变量数量将少于预测变量的总数。这允许在预测变量的数量超过数据集中的案例(行)数量时建立模型。早期拆分或分类规则可以相对容易地应用,但后续拆分变得越来越难以满足有效性标准。 "Power" 是正确分类不在子样本中的项目的能力,为此使用了代理,即所谓的 OOB 或 "out-of-bag" 项目。 randomForest 策略是多次执行此操作以建立一组具有代表性的规则,这些规则在假设袋外样本将公平代表整个数据集的 "universe" 的情况下对项目进行分类。
times_a_root
属于测量变量 "relative power" 与其 "competitors" 相比的类别。 times_a_root
统计量衡量一个变量在决策树中 "at the top" 的次数,即在选择分割标准的过程中它被首先选中的可能性有多大。 no_of_node
测量变量被选择的次数作为所有二次抽样中的分裂标准。
来自:
?randomForest # to find the names of the object leaves
forest$ntree
[1] 500
...我们可以看到得到一个分母,用于评估图中 y 轴上大致 200
值的含义。大约 2/5 的样本回归在顶部拆分标准中具有 Petal.Length
,而另外 2/5 的样本回归具有 Petal.Width
作为最重要变量的顶部变量。 500 人中大约有 75 人有 Sepal.Length
,而只有大约 8 或 9 人有 Sepal.Width
(...这是对数刻度。)在鸢尾花数据集的情况下,子样本至少会忽略其中一个每个子样本中的变量,因此 times_a_root
的最大可能值将小于 500。在这种情况下,200 的分数非常好,我们可以看到这两个变量都具有可比的解释能力。
no_of_nodes
统计数据汇总了在其任何节点中具有该变量的树的总数,请记住节点的数量将受到惩罚规则的限制。