id3算法c语言的实现,机器学习之决策树学习-ID3算法-原理分析与C语言代码实现.pdf...

机器学习之决策树学习-ID3算法-原理分析与C语言代码实现.pdf

机器学习之决策树学习-ID3 算法

原理分析与C 语言代码实现

作者:wxh5055 保留所有版权

本文先通过一个被经常使用的实例来简单说明决策树学习中ID3 算法的基本原理,然后

详细介绍ID3 算法以及用C 语言实现的方法,文章的最后给出ID3 算法的完整的C 语言代码。

该实例的训练样本数据如表 1 所示。该训练样例的目标属性是 PlayTennis(打网球),即

根据各属性类型 Outlook(天气)、Temperature(温度)、Humidity(湿度)和 Wind(风强度)的属性

值判断某一天是否打网球(Yes or No) 。

Day Outlook Temperature Humidity Wind PlayTennis

Dl Sunny Hot High Weak No

D2 Sunny Hot High Strong No

D3 Overcast Hot High Weak Yes

D4 Rain Mild High Weak Yes

D5 Rain Cool Normal Weak Yes

D6 Rain Cool Normal Strong No

D7 Overcast Cool Normal Strong Yes

D8 Sunny Mild High Weak No

D9 Sunny Cool Normal Weak Yes

Dl0 Rain Mild Normal Weak Yes

Dl1 Sunny Mild Normal Strong Yes

Dl2 Overcast Mild High Strong Yes

Dl3 Overcast Hot Normal Weak Yes

Dl4 Rain Mild High Strong No

表 1:ID3 算法使用的训练样例

ID3 算法即是根据上面的训练样例,自顶向下构造出一棵决策树。该决策树的最终形式

如图1(Tom M. Mitchell, Machine Learning):

图1:ID3 算法生成的决策树

现在的问题是,如何确定决策树的根结点是 Outlook,而不是其他的属性类型?这就是

本文介绍的ID3 算法需要详细说明的问题,也是ID3 算法的核心问题,即选择哪个属性作为

决策树的根结点。

为了确定选择哪个属性作为决策树的根结点,我们需要引入一个叫“信息增益

(information gain)”的概念,ID3 算法就是选择信息增益最大的属性作为决策树的根结点。我

们先给出信息增益的计算公式,然后再进一步说明公式中每个成员的含义:

Gain(S,A):属性A 在训练样例S 中的信息增益,在表1 中A 的取值为Outlook、Temperature 、

Humidity 和Wind 。

Entropy(S):训练样例的熵,稍后会进一步说明熵的计算方法。

v ∈Va lues(A):属性A 的所有可能取值的集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值