【问题标题】:Understanding partykit graph out of j48 in R了解 R 中 j48 中的 partykit 图
【发布时间】:2016-02-01 05:20:53
【问题描述】:

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

我使用的代码很简单:

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

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

【问题讨论】:

    标签: r tree party j48


    【解决方案1】:

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

    例如,如果 X 34 & Y 451 的 35 个观察值。

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

    【讨论】:

    • 好的,但这是什么意思?如果我进行汇总(m1),我会得到 83% 的实例被正确识别。
    • 是的,节点 2、5、7 将被分类为 0 响应,6 为 1 响应(如果您进行简单多数投票)。正如条形图所示,每个节点都会有一些错误分类,尤其是节点 5。
    • 我现在可能已经明白了,请检查我是否正确。我正确识别了 83% 的实例,因此这意味着 266 个实例中有近 46 个被错误识别。如果我检查每个节点,我会得到: - 节点 2 应该是 0 响应,但 193 个节点中有近 18% 被错误识别,这意味着大约 35 个; - 节点 5 应该是 0,但 21 个节点中有近 42% 被错误识别,因此大约是 9 个; - 在节点 6 中没有错误识别 1s 响应; - 节点 7 再次为 0,大约 17 中的 22%,因此意味着 3;考虑到我所做的四舍五入,总和得到 47,应该没问题,不是吗?
    • 是(最多四舍五入等)。使用进一步的拆分(例如关闭修剪),您可能会提高样本内错误分类率 - 但这可能会在新数据的样本外表现更差。
    • 好的,现在我如何使用我创建的这个模型对新数据进行分类?非常感谢您的帮助。
    【解决方案2】:

    获取拟合值的一般 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2016-09-02
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多