如何解释weka分类结果J48

时间:2017-02-08 14:48:10

标签: machine-learning weka j48

我需要帮助才能使用J48解释weka中的结果

我不知道如何解释结果,我正在使用来自http://archive.ics.uci.edu/ml/datasets/Heart+Disease的数据集心脏病数据集

和J48树

请帮助我,对此分析有一些重点 我的结果是:

===运行信息===

  • 方案:weka.classifiers.trees.J48 -C 0.25 -M 2
  • 关系:AnaliseCardiaca
  • 实例:303
  • 属性:14
    • 年龄
    • CP
    • trestbps
    • CHOL
    • FBS
    • restecg
    • thalach
    • exang
    • oldpeak
    • 斜率
    • CA
    • 地贫
    • NUM 测试模式:10倍交叉验证

===分类器模型(完整训练集)===

J48修剪树

cp <= 3
|   sex <= 0: 0 (57.0/2.0)
|   sex > 0
|   |   slope <= 1
|   |   |   fbs <= 0
|   |   |   |   trestbps <= 152
|   |   |   |   |   thalach <= 162
|   |   |   |   |   |   ca <= 1
|   |   |   |   |   |   |   age <= 56: 0 (12.0/1.0)
|   |   |   |   |   |   |   age > 56: 1 (3.0/1.0)
|   |   |   |   |   |   ca > 1: 1 (2.0)
|   |   |   |   |   thalach > 162: 0 (27.0)
|   |   |   |   trestbps > 152: 1 (4.0/1.0)
|   |   |   fbs > 0: 0 (9.0)
|   |   slope > 1
|   |   |   slope <= 2
|   |   |   |   ca <= 0
|   |   |   |   |   fbs <= 0
|   |   |   |   |   |   chol <= 261
|   |   |   |   |   |   |   oldpeak <= 2.5: 0 (11.61/1.0)
|   |   |   |   |   |   |   oldpeak > 2.5: 1 (3.0)
|   |   |   |   |   |   chol > 261: 1 (4.0)
|   |   |   |   |   fbs > 0: 0 (4.0)
|   |   |   |   ca > 0
|   |   |   |   |   thal <= 6: 1 (6.0/1.0)
|   |   |   |   |   thal > 6
|   |   |   |   |   |   thalach <= 145: 0 (3.39)
|   |   |   |   |   |   thalach > 145: 1 (5.0/1.0)
|   |   |   slope > 2: 0 (8.0/1.0)
cp > 3
|   thal <= 3
|   |   ca <= 2
|   |   |   exang <= 0
|   |   |   |   sex <= 0
|   |   |   |   |   chol <= 304: 0 (14.0)
|   |   |   |   |   chol > 304: 1 (3.0/1.0)
|   |   |   |   sex > 0
|   |   |   |   |   ca <= 0: 0 (10.0/1.0)
|   |   |   |   |   ca > 0: 1 (3.0)
|   |   |   exang > 0
|   |   |   |   restecg <= 1
|   |   |   |   |   slope <= 1: 0 (2.0)
|   |   |   |   |   slope > 1: 1 (5.37)
|   |   |   |   restecg > 1
|   |   |   |   |   ca <= 0: 0 (4.0)
|   |   |   |   |   ca > 0
|   |   |   |   |   |   ca <= 1
|   |   |   |   |   |   |   thalach <= 113: 0 (2.0)
|   |   |   |   |   |   |   thalach > 113: 1 (4.0)
|   |   |   |   |   |   ca > 1: 0 (2.0)
|   |   ca > 2: 1 (4.0)
|   thal > 3
|   |   fbs <= 0
|   |   |   ca <= 0
|   |   |   |   chol <= 278: 0 (23.0/8.0)
|   |   |   |   chol > 278: 1 (6.0)
|   |   |   ca > 0: 1 (46.0/12.0)
|   |   fbs > 0
|   |   |   ca <= 1: 1 (3.88)
|   |   |   ca > 1: 0 (11.75/4.75)

叶数:31

树的大小:61

Result img

2 个答案:

答案 0 :(得分:2)

如果您使用的是Weka Explorer,您可以右键单击结果列表中的结果行(位于开始按钮下方窗口的左侧)。然后选择可视化树。这将显示树的图像。

如果您仍想了解问题中显示的结果:

结果显示为树。树的根从左边开始。您可以看到使用的第一个功能称为cp。如果cp小于或等于3,那么树中的下一个特征是性别,依此类推。你可以看到,当你按性别和性别分开&lt; = 0时,你会达到预测。预测值为0,(57/2)表示在此路径中设置的列车中的57个观测值标记为0,而2标记为1。

以下是树的起点:

                         --------start---------         
                         |                    |
                         |                    |
                         |cp > 3              | cp <= 3
                _________|______          ____|__________
                |              |          |              |
                |thal>3        |thal<=3   |sex>0         |sex<=0
                |              |          |              |
               ...            ...        ...         prediction 0 (57,2)

答案 1 :(得分:2)

AndreyF的解释很好。我想补充一些信息。

为什么树的叶子中有浮点数?实例(个体)可以拆分并获得浮点值吗? (在现实中,一个人不能分裂)

当实例完全设置了所有属性时,就没有问题。但是当实例缺少属性时,分类器(J48)并不知道该属性的树的方式。

例如,如果一个实例有&#34; oldpeak&#34;属性就像一个缺失属性然后当它到达&#34; chol&lt; = 261&#34;节点(&#34; oldpeak&#34;节点的前一个节点)分类器将根据概率划分实例,实例的百分比将转到&#34; oldpeak&lt; = 2.5&#34;另一个百分比将转到&#34; oldpeak&gt; 2.5&#34;

分类器如何计算该概率?它通过实例计算实际节点不具有缺失属性。对于这个例子,将是&#34; oldpeak&#34;属性。

如果我们有25%的实例没有丢失&#34; oldpeak&#34;归类于&#34; oldpeak&lt; = 2.5&#34;节点,我们有75%的实例没有遗漏&#34; oldpeak&#34;属于&#34; oldpeak&gt;的属性2.5&#34;节点然后当分类器想要用&#34; oldpeak&#34;来分类实例时属性缺失然后这个实例的25%将通过&#34; oldpeak&lt; = 2.5&#34;其余的(75%)将通过&#34; oldpeak&gt; 2.5&#34;

您可以尝试删除缺少属性的实例,您会看到树只有整数而不是浮点数。

谢谢。