机器学习:决策树ID3\C4.5\CART\随机森林总结及python上的实现 (2)

本文详细介绍了决策树的基础知识,包括ID3、C4.5、CART算法的工作原理,以及它们在信息熵和基尼不纯度方面的差异。此外,文章还提到了随机森林这一集成学习方法,阐述了其通过自助法避免过拟合和增强鲁棒性的特点。文中还提及了决策树在当前研究中的发展趋势,如与其他算法的融合,并给出了决策树在实际应用中需要注意的数据预处理问题。
摘要由CSDN通过智能技术生成

本文主要根据Mitchell的机器学习总结归纳,图片大多来源于此,同时结合网上搜索到的资料和几篇较新的文献,自己写的决策树总结,当中的python算法摘自《集体智慧编程》,算法可在python2.7环境下运行。(本来想自己写的。。可是不懂数据结构的树,写的太不像样了,所以就看完智慧编程自己盲打了一遍,顺便了解了下树这种数据结构)


首先:

# define 结点 节点  //咳咳,本文中的所有'结点'的正确写法都是'节点',懒得改了 =_= 大家应该懂的。。。

决策树是目前应用最广的归纳推理算法之一,属于归纳学习的一种。主要用于分类离散值,不过改进后的算法也能对连续型数值进行分类。决策树对噪声具有很好的鲁棒性,常见的决策树算法形式主要有ID3,C4.5,CART等。

考虑训练数据如下:


其决策树形式如下:



如图:从上到下,把样本从最上的根节点排列到最后的叶子节点,叶子节点的值即代表了样本所属的分类。每个方框节点代表了样本的属性,其下的各个分叉线上的字母即为该属性的各个可能值,不断向下分叉直到分完所有训练数据。


接下里说下决策树用的算法。


一、决策树常见算法

ID3

ID3是最简单的决策树形式。回顾上面的决策树形式,你应该会发现一个疑点,那就是为什么我们选取了outlook作为根节点,而不选用其他的,或者说其实选哪个根节点都没事呢?

这就涉及到一个概念,那就是最优分类属性。算法判断outlook是最优分类属性,他能使得这个决策树长的最简单。

最优分类属性是通过信息增益比率来判断的。介绍前先引入一个概念,叫信息熵。如下:



如公式,S表示训练数据集合,i=1→c是目标概念可能的取值,如上面就是两个no和yes,Pi表示属于目标概念i的训练数据个数占S的比率。

信息熵是从热力学的熵中引申来的,我们知道在热力学中,熵表示的是一种无序状态,即越无序熵越大,有序结构的熵为0。而信息熵表示,一个东西他的不确定性越高,他的熵就越大,当他完全确定时,他的信息熵为0。

举个例子:

(前提:我们假设天气预报给出的预测概率是绝对正确的。)

天气预报说明天100%会下雨,好的那这句话所对应的信息熵就是 -1*log1=0,

天气预报说明天50%的可能会下雨,50%的可能会是晴天,那他的信息熵就是-0.5*log0.5-0.5*log0.5=1,

天气预报说明天25%可能下雨,25%可能晴天,50%可能阴天,那么可以计算其信息熵为1.5

从这个例子可以看出,当事物的不确定性上升的时候,他的信息熵会变大。


然后给出信息增益的定义:


公式中的第二项是S按照属性A进行分类后,整体所具有的信息熵。value(A)表示A中具有的所有属性的值,计算各个属性值下的信息熵Sv在乘上Sv所含的样本数比例,相加得到按A分类后的信息熵。两者相减即为信息增益Gain(S,A)。

在这里还是举个例子:

计算最上面的表格Enjoysport按属性wind划分后的信息增益如下:


然后说下我们为什么要引入信息增益的概念。从信息增益的公式就可以看出,当第二项的值很小的时候,即按照A属性划分后,整体的熵很小时,信息增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值