0

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

我使用的代码很简单:

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

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

4

2 回答 2

1

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

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

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

于 2015-11-01T22:36:07.947 回答
0

获得拟合值的一般 R 方法是通过 function 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
于 2015-11-01T06:46:27.800 回答