2

我需要帮助来使用 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
    • 脸书
    • 重建
    • 塔拉赫
    • 出口
    • 老峰
    • 塔尔
    • 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

结果图片

4

2 回答 2

5

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

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

结果显示为树。树的根从左侧开始,使用的第一个特征称为 cp。如果 cp 小于或等于 3,则树中的下一个特征是性,依此类推。您可以看到,当您按性别和性别 <= 0 进行拆分时,您会得到一个预测。预测为 0,(57/2) 意味着训练集中的 57 个观测值最终在这条路径上,2 个被错误分类,即 55 个具有标签 0,2 个具有标签 1。

下面是树的开始部分的样子:

                         --------start---------         
                         |                    |
                         |                    |
                         |cp > 3              | cp <= 3
                _________|______          ____|__________
                |              |          |              |
                |thal>3        |thal<=3   |sex>0         |sex<=0
                |              |          |              |
               ...            ...        ...         prediction 0 57(55,2)
于 2017-02-09T06:38:05.340 回答
2

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

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

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

例如,如果一个实例的“oldpeak”属性就像一个缺失的属性,那么当它到达“chol <= 261”节点(“oldpeak”节点的前一个节点)时,分类器将根据概率和实例的百分比将变为“oldpeak <= 2.5”,其他百分比将变为“oldpeak > 2.5”。

分类器如何计算该概率?它通过不具有实际节点缺失属性的实例进行计算。对于此示例,将是“oldpeak”属性。

如果我们有 25% 的实例没有丢失的“oldpeak”属性被分类到“oldpeak <= 2.5”节点,我们有 75% 的实例没有丢失的“oldpeak”属性被分类到“oldpeak > 2.5”节点那么当分类器想要对缺少“oldpeak”属性的实例进行分类时,该实例的 25% 将通过“oldpeak <= 2.5”,其余(75%)将通过“oldpeak > 2.5”。

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

谢谢你。

于 2017-02-10T14:08:21.510 回答