为决策树寻找最佳属性



为什么要选择"最佳"属性?如果我们从任何其他属性中进行选择,会有什么不同吗?

首先,让我们明确"最佳"属性在决策树中的含义——这是"最佳"对可用训练示例进行分类的属性。为了定义"最佳"-信息增益,需要熟悉两个术语。熵是信息论中的一个术语——它是一个数字,表示一组例子基于其目标类别的异质性。熵的另一个视角——它是从一组例子中编码一个随机例子所需的位数。另一方面,信息增益显示了如果选择特定属性,一组示例的熵将减少多少。另一种视角-它显示了如果选择了特定属性,则表示随机示例的类所需的位数的减少。

那么,我们为什么要根据训练示例来选择"最佳"属性呢?简单的答案是,这就是构建决策树的算法的工作原理——它搜索所有可能的决策树,并通过简单到复杂的搜索选择第一个正确分类训练示例的决策树。由于基本实现不包括任何重新审视和更改早期决策的机制,因此使用贪婪方法而不是随机方法是有意义的。

这里有一个简单的例子来演示在构建决策树时不选择"最佳"属性的后果。让我们假设我们有以下训练示例,属性为"考试"、"朋友"、"天气"one_answers"活动"。这些例子描述了基于是否即将考试、朋友是否有空以及天气是晴天还是雨天的首选活动。

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

为决策树的根选择的"最佳"属性是Exam。下一步是决定在即将进行考试和没有考试时选择哪个属性进行检查。当很快有考试时,活动总是学习,所以没有必要进一步探索。当没有考试时,我们需要计算选择朋友天气的信息增益:

IG(D-No-Exam, Friends) ~ 0.25
IG(D-No-Exam, Weather) ~ 0.92

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

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

现在,让我们构建一个决策树,对示例进行分类,但使用不同的根-Friends,并在需要的地方随机选择属性。我们最终可以得到以下树:

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

两棵树都正确地对训练示例进行了分类。不同之处在于,第二棵树更复杂,并且可能与训练数据过度拟合。通过始终选择最佳属性来构建决策树的算法"更喜欢"更短、更不复杂的树,以及首先检查最佳属性的树。

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

始终取决于具体情况。但大多数情况下,您希望尽可能快地执行树,因此您希望避免不必要的决策/分支。因此,您选择了最佳特征(以及相应的分割位置),而其他人则需要例如2-3个分支才能最终预测样本。

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

最新更新