利用计算机语言实现ID3算法,机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf...

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

35d72a572982ffb2d442b1f1daab673a.gif

还剩

23页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,很抱歉,此页已超出免费预览范围啦!

如果喜欢就下载吧,价低环保!

内容要点:

机器学习之决策树学习 -ID3 算法 原理分析与 C 语言 代码实现 作者: wxh5055 保留所有版权 本文 先 通过一个 被经常使用 的 实例 来简单说明决策树学习中 ID3 算法的基本原理 , 然后详细介绍 ID3算法 以及 用 C语言实现的方法 ,文章的最后给出 ID3算法的 完整 的 C语言 代码。 该实例的 训练 样本数据 如 表 1 所示 。 该训练样例 的目标属性是 Pl们先给出信息增益的计算公式,然后再进一步说明公式中每 个成员的 含义: Gain(S,A): 属性 A在训练样例 S中 的信息增益 , 在 表 1中 A的取值为 Outlook、 Temperature、Humidity 和 Wind。 Entropy(S): 训练样例的熵 , 稍后会进一步说明熵的计算方法。 v∈ Values(A): 属性 A 的所有可能取值 的集合 , 比如 表 1 中Entropy(SOvercase)= -(4/4)× log2(4/4)-(0/4)× log2(0/4)=0。 v 取值 Rain 时的正 样本数 等于 3,负 样本数 等于 2, 总样本数等于5, 所以 Entropy(SRain)= -(3/5)× log2(3/5)-(2/5)× log2(2/5)=0.971。 至此,我们已经介绍完了属性类型为 Outlook 时 信息 增益公式 Day Outlook Temperature Humidity Wind PlayTennis Dl Sunny Hot High Weak No D2 Sunny Hot High Strong No D8 Sunny Mild High Weak No D9 Sunny Cool Normal Weak Yes Dl1 Sunny Mild Normal Strong Yes 表 3: 信第四步: 根据根结点的属性的每个属性值,把训练样例的数据分解成 n 个独立的子表,如表 3、 4、 5 所示。 第五步: 把子表的属性类型为根 结点 属性类型的数据全部剔除,得到新的训练样例,如表 6 所示。 第六步:新的训练样例作为 ID3 算法的输入数据,递归调用 ID3 算法,把信息增益最高的属性作为根结点的 子结点 (当然,如果训练样例已经达到满足叶子结点的条件,就直接返回叶子结点,不该结构体的定义如下: //训练样例结构体 ,在 ID3 算法中用来表示训练样例集 typedef struct _examples { int sampleNum;//训练样例样本数 int attributeTypeNum;//训练样例包含的属性类型数目 (不包括目标属性 ) _attributeTypeName *pAttributeTypeName;//训练样例集的属性类型 int Hot High Weak No Hot High Strong No Mild High Weak No Cool Normal Weak Yes Mild Normal Strong Yes ); 最后递归调用 ID3(_example)算法搜索出 _example 的根结点存储到结点结构体的子结点中,最后返回。 再介绍一下计算信息增益的函数,该 函数 定义为: int FindMaxInID3 算法的完整代码如下 (注意,该代码只在本文引用的数据样例集中验证过,如果需要应用到其他地方,可能还需要进一步的验证! ): //决策树 ID3 算法代码实现 //Copyright:wxh5055 #include #include #include #incl

发表评论

暂无评论,赶快抢占沙发吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值