【问题标题】:finding best attribute for decision tree寻找决策树的最佳属性
【发布时间】:2016-07-08 20:08:08
【问题描述】:

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

【问题讨论】:

    标签: machine-learning decision-tree


    【解决方案1】:

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

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

    这里有一个简单的例子来演示在构建决策树时不选择“最佳”属性的后果。假设我们有以下具有 ExamFriendsWeather 和目标 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
    

    为决策树的根选择的“最佳”属性是Exam。下一步是决定在即将有考试和没有考试时选择哪个属性。马上就要考试了,活动总是学习,所以没有必要进一步探索。近期没有考试时,我们需要计算选择FriendsWeather的信息增益:

    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
    

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

    【讨论】:

      【解决方案2】:

      始终视情况而定。但大多数情况下,您希望尽可能快地执行树,因此您希望避免不必要的决策/分支。所以你选择了最好的特征(和相应的分割位置),而其他人需要例如再多 2-3 个分支来最终预测一个样本。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-07-29
          • 2018-09-02
          • 1970-01-01
          • 2016-11-11
          • 2014-04-12
          • 1970-01-01
          • 2021-05-16
          • 2016-06-06
          • 2018-03-03
          相关资源
          最近更新 更多