寻找决策树的最佳属性

finding best attribute for decision tree

为什么我们要select编辑“最佳”属性?如果我们 select 和任何其他属性会有什么不同吗?

确定在决策树中选择哪个属性的常用方法是 information gain。基本上,您尝试每个属性并查看哪个属性最能拆分您的数据。查看此套牌的第 6 页:http://homes.cs.washington.edu/~shapiro/EE596/notes/InfoGain.pdf

一如既往视情况而定。但大多数情况下你想尽可能快地执行树,所以你想避免不必要的 decisions/branches。所以你选择了最好的特征(和相应的分割位置),而其他的则需要例如2-3 个分支最终预测样本。

很容易看出,处理一棵有 10 个分支的树通常比处理另一棵有 30 个分支的树要快得多

首先,让我们弄清楚 "best" 属性在决策树中的含义 - 这是 "best" class 确定可用训练示例的属性。为了定义 "best" - 信息增益,需要熟悉两个术语。熵是信息论中的一个术语——它是一个数字,表示一组示例基于其目标 class 的异质性。关于熵的另一个观点——它是编码一组示例中的随机示例的 class 所需的位数。另一方面,信息增益显示了如果选择特定属性,一组示例的熵将减少多少。另一种观点 - 它显示了如果选择特定属性,表示随机示例 class 所需的位数减少。

那么,为什么要根据训练样例选择"best"属性呢?答案很简单,因为这就是构建决策树的算法的工作原理 - 它搜索所有可能的决策树并选择第一个 class 使用从简单到复杂的搜索正确验证训练示例的决策树。由于基本实现不包括任何重新访问和更改早期决策的机制,因此使用贪婪方法而不是随机方法是有意义的。

这里有一个简单的例子来演示在构建决策树时不选择 "best" 属性的后果。假设我们有以下训练示例,其属性为 ExamFriendsWeather 和目标 Activity。这些示例根据是否即将考试、朋友是否有空以及天气是晴天还是雨天来描述首选activity。

╔══════╦═════════╦═════════╦══════════╗
║ 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

要为决策树的根选择的 "best" 属性是 Exam。下一步是决定在即将有考试和没有考试时选择哪个属性进行检查。马上要考试了,activity一直在学习,所以没必要再去探索了。在临近没有考试的情况下,我们需要计算选择FriendsWeather:

的信息增益
IG(D-No-Exam, Friends) ~ 0.25
IG(D-No-Exam, Weather) ~ 0.92

按照与之前相同的策略,我们将选择 天气,最终决策树将如下所示:

      Exam?
      /  \
    yes   no
    /      \
 STUDY     Weather?
            /   \
         sunny  rain 
          /       \
       PICNIC     PLAY

现在让我们构建一个决策树,class使用不同的根 - Friends 并在需要的地方随机选择属性。我们可以得到以下树:

                Friends?
                /     \
              yes      no
             /          \
          Exam?         Exam?
          /  \           /   \
        yes   no       yes   no
        /      \        |     |
     STUDY   Weather?  STUDY  PLAY
               /   \
            sunny  rain
             /       \
          PICNIC    PLAY

两棵树都class正确地验证了训练样本。不同的是,第二棵树更复杂,可能对训练数据过拟合。 通过始终选择最佳属性构建决策树的算法 "prefers" 较短且不太复杂的树以及首先检查最佳属性的树。