了解 R 中 j48 的 partykit 图

Understanding partykit graph out of j48 in R

我已经使用 R 中的 j48 树对包含 266 个距离和大约 100 个指标的数据集进行了分析。我不是最擅长机器学习的,无论如何我设法获得了 j48 Weka 和 R 中的树。在后者中,我发现树可以通过 partykit 包可视化。然而,我发现很难解释我得到的结果,即这些(X、Y 和 Z 是我用来描述 266 个 istance 中的每一个的 100 多个指标中的 3 个,其中 190 个是正常的或 0 和 76 个是异常的或 1 ).

我使用的代码非常简单:

m1 <- J48(Case~., data = mydata, control = Weka_control(R = TRUE))
if(require("partykit", quietly = TRUE)) plot(m1)

因此我修剪了这棵树。 还有一个问题:我知道我可以从树中获得拟合值,但我不知道如何获得。 如果您对这两个问题或仅对一个问题提供帮助,我们将不胜感激。

获得拟合值的一般 R 方法是通过函数 predict。在您的情况下,您对分类概率感兴趣。有关详细信息,请参阅 ?predict.Weka_classifier

library(RWeka)

m1 <- J48(Species ~ ., data = iris)
predict(m1, type = "probability")
    setosa versicolor  virginica
1        1 0.00000000 0.00000000
2        1 0.00000000 0.00000000
3        1 0.00000000 0.00000000
4        1 0.00000000 0.00000000
5        1 0.00000000 0.00000000
6        1 0.00000000 0.00000000

已选择变量 X、Y、Z 来拆分(或分区)您的数据,而其余变量尚未选择。由此产生的终端节点导致不同的响应概率。响应概率也由可视化终端节点中的堆叠条形图显示。

例如,如果 X <= 34,则响应概率相当低(大约 17%)。这是最大的子集,包含 266 个观测值中的 193 个。响应概率非常高(大约 96%)的唯一子集是 X > 34 & Y <= 482 & Z > 451 的 35 个观测值。

正如@Roman Luštrik 已经指出的那样:每个观测值的拟合值可以通过 predict(m1, type = "prob") 获得。