为什么我们希望选择“最佳”属性?如果我们选择其他属性会有什么不同吗?
回答:
首先,让我们明确在决策树的背景下“最佳”属性是什么意思——这是能够“最佳”分类可用训练样本的属性。为了定义“最佳”,需要熟悉两个术语——熵和信息增益。熵是信息理论中的一个术语——它是一个数字,表示一组样本在目标类别上的异质性程度。另一种对熵的理解——它是编码来自一组样本的随机样本类别所需的比特数。另一方面,信息增益显示了如果选择特定属性,一组样本的熵将减少多少。另一种视角——它显示了如果选择特定属性,代表随机样本类别所需的比特数将减少多少。
那么,为什么我们根据训练样本选择“最佳”属性呢?简单的回答是因为这是构建决策树算法的工作方式——它搜索所有可能的决策树,并选择第一个正确分类训练样本的决策树,采用从简单到复杂的搜索方法。由于基本实现不包括任何重新审视和更改早期决策的机制,因此使用贪婪方法而不是随机方法是有意义的。
这里有一个简单的例子来说明在构建决策树时不选择“最佳”属性的后果。假设我们有以下训练样本,属性包括考试、朋友、天气,目标是活动。这些样本描述了根据是否即将考试、朋友是否可用以及天气是晴天还是雨天来决定的首选活动。
╔══════╦═════════╦═════════╦══════════╗║ 考试 ║ 朋友 ║ 天气 ║ 活动 ║╠══════╬═════════╬═════════╬══════════╣║ 是 ║ 是 ║ 晴天 ║ 学习 ║║ 否 ║ 是 ║ 晴天 ║ 野餐 ║║ 是 ║ 否 ║ 雨天 ║ 学习 ║║ 是 ║ 是 ║ 雨天 ║ 学习 ║║ 否 ║ 是 ║ 雨天 ║ 玩耍 ║║ 否 ║ 否 ║ 雨天 ║ 玩耍 ║╚══════╩═════════╩═════════╩══════════╝
当我们进行计算时,我们得到以下信息增益数值:
IG(D, 考试) ~ 1IG(D, 朋友) ~ 0.13IG(D, 天气) ~ 0.46
决策树根节点选择的“最佳”属性是考试。下一步是决定在即将考试和没有考试的情况下选择哪个属性进行检查。当即将考试时,活动总是学习,因此不需要进一步探索。当没有考试时,我们需要计算选择朋友和天气的信息增益:
IG(D-无考试, 朋友) ~ 0.25IG(D-无考试, 天气) ~ 0.92
按照之前的策略,我们将选择天气,最终决策树将如下所示:
考试? / \ 是 否 / \ 学习 天气? / \ 晴天 雨天 / \ 野餐 玩耍
现在让我们构建一个决策树,它分类这些样本但使用不同的根节点——朋友,并在需要时随机选择属性。我们可能会得到以下树:
朋友? / \ 是 否 / \ 考试? 考试? / \ / \ 是 否 是 否 / \ | | 学习 天气? 学习 玩耍 / \ 晴天 雨天 / \ 野餐 玩耍
两棵树都能正确分类训练样本。不同之处在于第二棵树更复杂,可能会过度拟合训练数据。通过始终选择最佳属性的决策树构建算法“偏好”更短、更不复杂的树,并且首先检查最佳属性。