寻找决策树的最佳属性

为什么我们希望选择“最佳”属性?如果我们选择其他属性会有什么不同吗?


回答:

首先,让我们明确在决策树的背景下“最佳”属性是什么意思——这是能够“最佳”分类可用训练样本的属性。为了定义“最佳”,需要熟悉两个术语——信息增益。熵是信息理论中的一个术语——它是一个数字,表示一组样本在目标类别上的异质性程度。另一种对熵的理解——它是编码来自一组样本的随机样本类别所需的比特数。另一方面,信息增益显示了如果选择特定属性,一组样本的熵将减少多少。另一种视角——它显示了如果选择特定属性,代表随机样本类别所需的比特数将减少多少。

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

这里有一个简单的例子来说明在构建决策树时不选择“最佳”属性的后果。假设我们有以下训练样本,属性包括考试朋友天气,目标是活动。这些样本描述了根据是否即将考试、朋友是否可用以及天气是晴天还是雨天来决定的首选活动。

╔══════╦═════════╦═════════╦══════════╗║ 考试 ║ 朋友   ║ 天气   ║ 活动    ║╠══════╬═════════╬═════════╬══════════╣║ 是   ║ 是      ║ 晴天   ║ 学习    ║║ 否   ║ 是      ║ 晴天   ║ 野餐    ║║ 是   ║ 否      ║ 雨天   ║ 学习    ║║ 是   ║ 是      ║ 雨天   ║ 学习    ║║ 否   ║ 是      ║ 雨天   ║ 玩耍    ║║ 否   ║ 否      ║ 雨天   ║ 玩耍    ║╚══════╩═════════╩═════════╩══════════╝

当我们进行计算时,我们得到以下信息增益数值:

IG(D, 考试) ~ 1IG(D, 朋友) ~ 0.13IG(D, 天气) ~ 0.46

决策树根节点选择的“最佳”属性是考试。下一步是决定在即将考试和没有考试的情况下选择哪个属性进行检查。当即将考试时,活动总是学习,因此不需要进一步探索。当没有考试时,我们需要计算选择朋友天气的信息增益:

IG(D-无考试, 朋友) ~ 0.25IG(D-无考试, 天气) ~ 0.92

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

      考试?      /  \    是    否    /      \ 学习     天气?            /   \         晴天  雨天           /       \       野餐     玩耍

现在让我们构建一个决策树,它分类这些样本但使用不同的根节点——朋友,并在需要时随机选择属性。我们可能会得到以下树:

                朋友?                /     \              是      否             /          \          考试?         考试?          /  \           /   \        是    否       是    否        /      \        |     |     学习   天气?  学习  玩耍               /   \            晴天  雨天             /       \          野餐    玩耍

两棵树都能正确分类训练样本。不同之处在于第二棵树更复杂,可能会过度拟合训练数据。通过始终选择最佳属性的决策树构建算法“偏好”更短、更不复杂的树,并且首先检查最佳属性。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注