为什么我们要选择“最佳”属性?如果我们从任何其他属性中选择,会有什么不同吗?
答案 0 :(得分:5)
首先,让我们根据决策树清楚“最佳”属性是什么意思 - 这是“最佳”分类可用培训示例的属性。为了定义“最佳” - 熵和信息增益,需要熟悉两个术语。熵是来自信息理论的术语 - 它是一个数字,表示一组示例基于其目标类的异构。 Anther对熵的看法 - 它是从一组示例中编码随机示例的类所需的位数。另一方面,信息增益表示如果选择特定属性,一组示例的熵将减少多少。替代视角 - 它显示了如果选择特定属性,则表示随机示例的类所需的位数减少。
那么,为什么我们根据训练样例选择“最佳”属性?简单的答案是因为这就是构建决策树的算法的工作原理 - 它搜索所有可能的决策树,并选择第一个使用简单到复杂的搜索正确分类训练样例的树。由于基本实现不包括任何重新访问和更改早期决策的机制,因此使用贪婪方法而不是随机方法是有意义的。
这是一个简单的例子,用于说明在构建决策树时不选择“最佳”属性的后果。让我们假设我们有以下培训示例,其中属性考试,朋友,天气和目标活动。这些示例根据是否有考试,朋友是否可用以及天气是晴天还是下雨来描述首选活动。
╔══════╦═════════╦═════════╦══════════╗
║ Exam ║ Friends ║ Weather ║ Activity ║
╠══════╬═════════╬═════════╬══════════╣
║ yes ║ yes ║ sunny ║ study ║
║ no ║ yes ║ sunny ║ picnic ║
║ yes ║ no ║ rain ║ study ║
║ yes ║ yes ║ rain ║ study ║
║ no ║ yes ║ rain ║ play ║
║ no ║ no ║ rain ║ play ║
╚══════╩═════════╩═════════╩══════════╝
当我们进行数学计算时,我们最终得到以下数字以获取信息:
IG(D, Exam) ~ 1
IG(D, Friends) ~ 0.13
IG(D, Weather) ~ 0.46
为决策树的根选择的“最佳”属性是考试。下一步是决定在考试很快和没有考试时选择哪个属性。如果很快就有考试,活动总是在学习,所以不需要进一步探索。如果没有考试,我们需要计算选择朋友和天气的信息收益:
IG(D-No-Exam, Friends) ~ 0.25
IG(D-No-Exam, Weather) ~ 0.92
遵循与之前相同的策略,我们会选择天气,最后决策树将如下所示:
Exam?
/ \
yes no
/ \
STUDY Weather?
/ \
sunny rain
/ \
PICNIC PLAY
现在让我们构建一个决策树,对示例进行分类,但使用不同的根 - 朋友并随意选择需要的属性。我们最终可以得到以下树:
Friends?
/ \
yes no
/ \
Exam? Exam?
/ \ / \
yes no yes no
/ \ | |
STUDY Weather? STUDY PLAY
/ \
sunny rain
/ \
PICNIC PLAY
两棵树都正确地对训练样例进行了分类。不同之处在于第二棵树更复杂并且可能过度适应训练数据。 通过选择总是最好的属性来构建决策树的算法“更喜欢”更短,更简单的树和首先检查最佳属性的树。
答案 1 :(得分:0)
确定在决策树中选择哪个属性的常用方法是information gain
。基本上,您尝试每个属性,看看哪个属性最好地分割您的数据。查看此套牌的第6页:http://homes.cs.washington.edu/~shapiro/EE596/notes/InfoGain.pdf
答案 2 :(得分:0)
一如既往地视情况而定。但大多数情况下,您希望尽快执行树,因此您希望避免不必要的决策/分支。所以你选择了最好的特征(和相应的分割位置),而其他需要例如2-3个分支最终预测样本。
在处理具有10个分支的树时,很容易看到比具有30个分支的另一个树快得多