我已经使用R中的j48树对266个问题和大约100个指标组成的数据集进行了分析。我不是最熟练的机器学习,无论如何我设法得到j48树Weka和R.在后者中我发现树可以通过partykit包可视化。然而,我发现难以解释我的结果,即这些(X,Y和Z是100个指标中的3个,用于描述266个中的每一个,其中190个是正常的或0和76个是异常的或1个)。
我使用的代码非常简单:
m1 <- J48(Case~., data = mydata, control = Weka_control(R = TRUE))
if(require("partykit", quietly = TRUE)) plot(m1)
因此我修剪了这棵树。
还有一个问题:我知道我可以从树上获得拟合值,但我不知道如何。
我们将非常感谢您对这两个问题或任何一个问题的任何帮助。
答案 0 :(得分:0)
获得拟合值的一般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
答案 1 :(得分:0)
已选择变量X,Y,Z来分割(或分区)数据,而未选择其余变量。由此产生的终端节点导致响应的不同概率。响应概率也由可视化终端节点中的堆积条形图显示。
例如,如果X <= 34,则响应概率相当低(约17%)。这是266个观测中的193个中最大的子集。响应概率非常高(约96%)的唯一子集是35个观察结果,其中X> 1。 34&amp; Y <= 482&amp; Z> 451。
正如@RomanLuštrik已经指出的那样:每个观察的拟合值可以通过predict(m1, type = "prob")
获得。