C4.5算法如何处理连续间隔的缺失值和属性值?另外,如何修剪决策树?有人可以借助一个例子来解释。
答案 0 :(得分: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
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]
概率分布。Humidity
属性中看到此示例。 C4.5算法通过将其分解为65,70,75,78 ... 90来测试湿度属性提供的信息增益,并发现在75处执行分割提供了最多的信息增益。有关更多信息,我建议使用这个优秀的资源来编写自己的决策树和随机森林算法:https://cis.temple.edu/~giorgio/cis587/readings/id3-c45.html