数据科学新手的完全指南:ID3决策树算法解析

前言

决策树是机器学习中一个强大且广泛应用的算法,而ID3决策树算法是其早期版本之一。ID3决策树算法由Ross Quinlan于1986年首次提出,它是决策树算法家族的早期成员。它的发展对于机器学习和数据挖掘领域产生了深远的影响。


本文将对“决策树”--ID3算法进行详细的解读

一、ID3算法概述

ID3算法通过选择最佳的特征来进行数据集的划分。选择特征的标准是信息增益(Information Gain),这个指标用来衡量在选择特征后数据集的不确定性减少程度。具体而言,算法会计算每个特征的信息增益,然后选择具有最高信息增益的特征作为当前节点的划分特征。根据选择的划分特征,ID3算法将数据集划分成多个子集,每个子集对应于划分特征的一个取值。然后,对每个子集递归地应用ID3算法,直到满足停止条件。

ID3算法的停止条件通常包括以下情况之一:

  • 所有样本都属于同一类别。这时候不再需要进一步划分。
  • 没有更多的特征可用于划分数据集。
  • 达到预定的树深度。

通过递归划分和选择划分特征,ID3算法逐步构建决策树,其中每个节点表示一个特征,每个叶子节点表示一个类别标签。生成的决策树可以用于分类新的未见样本。通过从根节点开始,根据特征的取值逐步遍历树的分支,最终到达叶子节点,该叶子节点对应于样本的分类。

二、ID3算法原理解析

在ID3算法中,信息熵(Entropy)和信息增益(Information Gain)之间存在密切的关系。信息熵用于度量数据集的不确定性,而信息增益用于衡量选择某个特征进行划分后,数据集不确定性的减少程度。以下是它们的具体公式和关系:

1、信息熵

H(D)=- \sum_{i-1}^{k}p_{i}log_{2}(p_{i})

其中:

  • H(D)表示数据集D的信息熵。
  • k是类别的数量。
  • p_{i}是数据集D中属于类别i的样本比例。

信息熵H(D)衡量了数据集D的混乱程度或不确定性。当数据集中的样本全部属于同一类别时,信息熵达到最小值0,表示数据集的纯度最高,没有不确定性。反之,如果数据集中的样本均匀分布在不同的类别中,信息熵达到最大值,表示数据集的纯度最低,具有最大的不确定性。

2、信息增益

IG(D,A) = H(D)-\sum_{v\in Values(A)}\frac{D_{v}}{D}H(D_{v})

其中:

  • IG(D,A)表示特征A的信息增益。
  • H(D)是数据集D的信息熵。
  • Values(A)表示特征A的所有可能取值。
  • D_{v}表示使用特征A的某个取值v划分后的子数据集的大小。
  • D是整个数据集的大小。

信息增益IG(D,A)衡量了在选择特征A进行划分后,数据集D的信息熵减少的程度。信息增益越高,表示使用特征A进行划分后,数据集的不确定性减少程度越大,因此这个特征更能有效地划分数据集。

三、ID3算法实例应用

假设我们有一个数据集,其中包含了一些关于天气条件和是否应该进行户外活动的信息。我们想要构建一个决策树来预测在特定天气条件下是否应该进行户外活动。

1、标签(结果是否外出打球)的熵(类别熵):

14天中,9天打球,5天不打球,熵为:

-\frac{9}{14}log_{2}\frac{9}{14}-\frac{5}{14}log_{2}\frac{5}{14}=0.940

2、基于天气的成分:

晴天5天的熵为:

-\frac{2}{5}log_{2}\frac{2}{5}-\frac{3}{5}log_{2}\frac{3}{5}=0.971

阴天4天的熵为:

-\frac{5}{5}log_{2}\frac{5}{5}=0

雨天5天的熵为:

-\frac{3}{5}log_{2}\frac{3}{5}-\frac{2}{5}log_{2}\frac{2}{5}=0.971

则天气的熵值为:

5/14*0.971+4/14*0+5/14*0.971=0.693

因此,可得信息增益为:

0.940-0.693=0.247

3、基于温度的划分:

算法根据信息增益选择最佳的特征进行划分,以创建一个能够预测目标变量的模型。实际应用中,可以根据数据集和问题的需求来选择合适的特征和停止条件。

hot4天的熵为:

-\frac{2}{4}log_{2}\frac{2}{4}-\frac{2}{4}log_{2}\frac{2}{4}=1.000

Mild6天的熵为:

-\frac{4}{6}log_{2}\frac{4}{6}-\frac{2}{6}log_{2}\frac{2}{6}=0.918

cool4天的熵为:

-\frac{3}{4}log_{2}\frac{3}{4}-\frac{1}{4}log_{2}\frac{1}{4}=0.811

则温度的熵值为:

4/14*1+6/14*0.918+4/14*0.811=0.911

因此,可得温度的信息增益为:

0.940 - 0.911 = 0.029

4、基于湿度的划分

high7天的熵值为:

-\frac{3}{7}log_{2}\frac{3}{7}-\frac{4}{7}log_{2}\frac{4}{7}=0.985

normal7天的熵值为:

-\frac{6}{7}log_{2}\frac{6}{7}-\frac{1}{7}log_{2}\frac{1}{7}=0.592

则湿度的熵值为:

7/14*0.985+7/14*0.592=0.789

因此,可得湿度的信息增益为:

0.940 - 0.789 =0.151

5、基于有风的划分:

false8天的熵值为:

-\frac{6}{8}log_{2}\frac{6}{8}-\frac{2}{8}log_{2}\frac{2}{8}=0.811

true6天的熵值为:

-\frac{3}{6}log_{2}\frac{3}{6}-\frac{3}{6}log_{2}\frac{3}{6}=1

则有风的熵值为:

8/14*0.811 + 6/14*1 = 0.892

因此,可得有风的信息增益为:

0.940 - 0.892 = 0.048

综上:信息增益的大小:

天气:0.247

温度:0.029

湿度:0.151

有风:0.048

显然,信息增益最大的是: 天气 > 温度 > 有风 > 湿度

如有不足,欢迎在下方评论区批评指正

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值