C4.5算法如何处理连续区间上的缺失值和属性值?另外,如何修剪决策树?有人可以在一个例子的帮助下解释一下。
问问题
3049 次
1 回答
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
- C4.5 算法通过返回缺失值的属性分支下标签的概率分布来处理缺失值。假设我们的测试数据中有一个实例,它显示了前景为
Sunny
但没有属性值Humidity
。此外,假设我们的训练数据有2 个实例,其前景为Sunny
,Humidity
低于 75,标签为Play
。此外,假设训练数据有3 个实例,其前景为Sunny
,Humidity
高于 75,标签为Don't Play
。因此对于缺少Humidity
属性的测试实例,C4.5 算法将返回[0.4, 0.6]
对应于的概率分布[Play, Don't Play]
。 - 假设您已经了解决策树如何使用一组特征的信息增益来选择在每个级别上分支哪些特征,C4.5 算法通过评估每个分割的信息增益,对连续间隔属性执行相同的过程属性并选择最好的。这方面的一个例子可以在
Humidity
上面的属性中看到。C4.5 算法通过在 65、70、75、78...90 处拆分来测试湿度属性提供的信息增益,发现在 75 处执行拆分提供的信息增益最多。 - C4.5 通过将决策树中的子树替换为单个决策节点来执行剪枝,该决策节点要么包含子树的所有决策,要么提供最小的错误。
欲了解更多信息,我会推荐这个我用来编写自己的决策树和随机森林算法的优秀资源:https ://cis.temple.edu/~giorgio/cis587/readings/id3-c45.html
于 2017-02-27T04:28:47.423 回答