开始学习数据挖掘相关算法!
参考①https://blog.csdn.net/ustcyy91/article/details/53401950
②https://blog.csdn.net/taoqick/article/details/72852255
③https://baike.baidu.com/item/%E4%BF%A1%E6%81%AF%E7%86%B5/7302318?fr=aladdin
ID3算法
以信息熵和信息增益作为衡量标准的一种决策树分类算法。属于有监督算法。在ID3算法中,选择信息增益最大的属性作为当前的分类标识(类标)对数据集进行分类,进而能够得到深度尽可能浅的决策树。
相关理论基础
信息量
衡量信息多少的物理量,一个事件发生的概率越大,其包含的信息量就越少。一个越小概率的事件,其包含的信息量越多。概率的大小可以理解为事件进一步发展的不确定性的大小,这就是说信息量的大小与一个事件进一步发展的不确定性有关。
而这种不确定性怎么量化呢?事件的不确定性受什么影响呢?要想量化,首先需要知道哪些因素对其造成影响:
①事件进一步发展的可能情况的多少 ②可能情况的概率分布
有了影响因素之后,进一步分析信息熵应该具有的特性,比如非负、可叠加等。这样就能大概知道信息熵公式的模样了。这样再看香农的信息熵公式,就会有更好的理解。
信息熵
对信息进行量化所使用的就是信息熵的概念。也就是说信息量的结果就是信息熵。
信源含有的信息量是信源发出的所有可能消息的平均不确定性。我们用熵来评价整个信源的平均信息量,而平均最好的量度就是期望。在1948年,香农引入了信息熵,将其定义为离散随机事件出现的概率,一个系统越是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。
香农给出的信息熵公式,对于任意一个随机变量X,它的信息熵定义如下,单位为比特(bit):
![](https://i-blog.csdnimg.cn/blog_migrate/6c41163e3dbfedd7af0a4959b628b71b.png)
其中S是随机变量,它包括n种可能结果,pi表示第i种结果发生的概率。其中log的底数不是固定的,只不过一般采用2为底。
对应于分类系统来说,类别C是随机变量,有n种类别,则此分类系统的信息熵公式定义如下:
信息增益
以下参考文章:https://blog.csdn.net/fly_time2012/article/details/70210725
信息增益的计算公式:
其中为全部样本集合,
是属性
所有取值的集合,
是
的其中一个属性值,
是
中属性
的值为
的样例集合,
为
中所含样例数。
信息增益是针对属性而言的,就是看一个属性,系统有它和没有它时的信息量各是多少,两者的差值就是这个属性给系统带来的额外信息量,即信息增益。
接下来以天气预报的例子来说明。下面是描述天气数据表,学习目标是play或者not play。
可以看出,一共14个样例,包括9个正例和5个负例。那么当前的类别信息熵计算如下:
在决策树分类问题中,信息增益就是决策树在选择属性进行划分前后的信息熵的差值。假设利用属性Outlook来分类,那么如下图:
划分后,数据被分为三部分了,那么各个分支的信息熵计算如下:
那么划分后的信息熵为:
在决策树的每一个非叶子结点划分之前,先计算每一个属性所带来的信息增益,选择最大信息增益的属性来划分,因为信息增益越大,区分样本的能力就越强,越具有代表性。