【问题标题】:c4.5 algorithm missing valuesc4.5 算法缺失值
【发布时间】:2017-07-02 07:48:00
【问题描述】:

C4.5算法如何处理连续区间的缺失值和属性值?另外,如何修剪决策树?有人可以在示例的帮助下解释一下吗?

【问题讨论】:

标签: algorithm decision-tree c4.5


【解决方案1】:

假设我们根据是否应该根据天气条件打高尔夫球的典型示例构建了一个决策树。我们可能有这样的训练数据集:

OUTLOOK | TEMPERATURE | HUMIDITY | WINDY | PLAY
=====================================================
sunny   |      85     |    85    | false | Don't Play
sunny   |      80     |    90    | true  | Don't Play
overcast|      83     |    78    | false | Play
rain    |      70     |    96    | false | Play
rain    |      68     |    80    | false | Play
rain    |      65     |    70    | true  | Don't Play
overcast|      64     |    65    | true  | Play
sunny   |      72     |    95    | false | Don't Play
sunny   |      69     |    70    | false | Play
rain    |      75     |    80    | false | Play
sunny   |      75     |    70    | true  | Play
overcast|      72     |    90    | true  | Play
overcast|      81     |    75    | false | Play
rain    |      71     |    80    | true  | Don't Play

并用它来构建一个可能看起来像这样的决策树:

              Outlook
            /  |      \
  overcast /   |sunny  \rain
          /    |        \
     Play   Humidity   Windy
           /   |         |  \
          /    |         |   \
    <=75 /  >75|     true|    \false
        /      |         |     \
     Play  Don'tPlay Don'tPlay  Play
  1. C4.5 算法通过返回缺失值的属性分支下标签的概率分布来处理缺失值。假设我们的测试数据中有一个实例显示前景为Sunny,但没有属性Humidity 的值。另外,假设我们的训练数据有 2 个实例,其前景为SunnyHumidity 低于 75,标签为Play。此外,假设训练数据有 3 个实例,其中前景为SunnyHumidity 高于 75,并且标签为Don't Play。因此对于缺少Humidity 属性的测试实例,C4.5 算法将返回[0.4, 0.6] 对应于[Play, Don't Play] 的概率分布。
  2. 假设您已经了解决策树如何使用一组特征的信息增益来选择在每个级别上分支哪些特征,C4.5 算法通过评估信息增益对连续区间属性执行相同的过程属性的每个拆分并选择最佳的。这方面的一个例子可以在上面的Humidity 属性中看到。 C4.5 算法通过在 65、70、75、78...90 处拆分来测试湿度属性提供的信息增益,发现在 75 处执行拆分提供的信息增益最多。
  3. C4.5 通过将决策树中的子树替换为包含子树的所有决策或提供最小错误的单个决策节点来执行修剪。

如果想了解更多信息,我会推荐这个我用来编写自己的决策树和随机森林算法的优秀资源:https://cis.temple.edu/~giorgio/cis587/readings/id3-c45.html

【讨论】:

  • 您还有其他问题吗?
  • 来自此的问题“通过将其拆分为 65、70、75、78...90”。 95 和 96 呢?
  • 我的意思是说所有的值都被评估并选择了 75 个值。
  • 我正在学习 C4.5 并对此感到困惑,在 Quinlan 在第 79 页上关于改进 C4.5 中连续属性使用的期刊中,它说,如果 A 有 N 个不同的值在一组案例 D 中,将有 N-1 个阈值可用于对 A 进行测试,这与选择像您的答案一样的阈值相同吗?像这样 [65] 70,其中 65 是阈值,如果是的话。那么阈值是 N?那么它与 N-1 的期刊不同
  • 哦,它是 N-1,因为最后一个不会被评估为阈值,因为它将是
猜你喜欢
  • 2015-07-03
  • 1970-01-01
  • 2013-04-12
  • 2014-04-12
  • 1970-01-01
  • 2016-08-12
  • 2013-04-17
相关资源
最近更新 更多