快捷搜索:  汽车  科技

数据挖掘分类算法的步骤(数据挖掘之分类算法)

数据挖掘分类算法的步骤(数据挖掘之分类算法)问题不确定性越大,则信息熵就越大,反之,则越小。对于任意一个随机变量X,它的信息熵定义如下,单位为比特(bit),计算公式为(p(x)代表事件x 的发生概率),下图的log是以2为底的log函数,即log2(P(x)):信息熵:用来衡量信息量的大小,比如:一本2万字的书,信息量是多大?一套水浒传,信息量又是多大?1948年,香农在“通信的数学原理”一文中提出信息熵的概念,验证了熵与信息的不确定性有等价关系。即:决策树的算法(实现)包括ID3、C4.5,今天以ID3为例:ID3算法实实现决策树的一种算法,主要以信息论相关知识为基础(信息熵和信息增益度),实现对数据的归纳分类。同时ID3算法也遵循了“奥卡姆剃刀”精神:符合要求的前提下,越简单越好——simple!

数据挖掘分类算法的步骤(数据挖掘之分类算法)(1)

古语有云:"物以类聚、人以群分"。那背后隐含的深刻思想:相似的对象最终会聚到一起去,然后聚集后的群体又可以根据聚集后的群体性特征(或者某些特征)一一进行划分。通过这样一个过程,就可以尽最大可能的降低类别信息处理的时间、空间复杂度。比如垃圾邮件分类、人群聚类的标签生成.....

那么,今天,我们重点介绍一下决策树分类算法,具体以ID3算法为实例的讲解。

首先,什么是决策树?

数据挖掘分类算法的步骤(数据挖掘之分类算法)(2)

又名:判定树,因其结构形似树状结构,故以“树”字来命名。

决策树包括三个部分:根节点、内部节点和叶子节点,其中根节点代表最先分裂属性内部节点代表随后依次分裂的属性叶子节点代表类别属性

决策树的算法(实现)包括ID3、C4.5,今天以ID3为例:

ID3算法实实现决策树的一种算法,主要以信息论相关知识为基础(信息熵和信息增益度),实现对数据的归纳分类。

同时ID3算法也遵循了“奥卡姆剃刀”精神:符合要求的前提下,越简单越好——simple!

信息熵:用来衡量信息量的大小,比如:一本2万字的书,信息量是多大?一套水浒传,信息量又是多大?1948年,香农在“通信的数学原理”一文中提出信息熵的概念,验证了熵与信息的不确定性有等价关系。即:

问题不确定性越大,则信息熵就越大,反之,则越小。对于任意一个随机变量X,它的信息熵定义如下,单位为比特(bit),计算公式为(p(x)代表事件x 的发生概率),下图的log是以2为底的log函数,即log2(P(x)):

数据挖掘分类算法的步骤(数据挖掘之分类算法)(3)

信息增益(Gain)=划分前的信息熵-划分后的信息信息熵即不确定性减少的程度的度量

那么接下来,我们根据下面Training data和Test data进行实例讲解:

数据挖掘分类算法的步骤(数据挖掘之分类算法)(4)

步骤1、先计算数据集D的信息熵H(x),数据集D的信息熵,即在仅仅只知道类别属性的基础上的信息熵,如下所示:

数据挖掘分类算法的步骤(数据挖掘之分类算法)(5)

数据记录9条,是否优秀属性值为“是”的有6条,为“否”的3条

总信息熵H(x)=-6/9*log2(6/9)-3/9*log2(3/9)=1.34998。这个数值就是告诉我们,是否优秀这个不确定性为1.3多,那么假设有人可以告诉你说:如果我告诉你一列属性值(和目标分类属性相关的属性值),那么你的这种不确定性又是多少呢?

步骤二、计算知道各个属性的前提下,数据集D的信息熵

比如知道了年龄属性:在<18岁年龄特征下,有优秀的,也有不优秀的,那么总共有1个优秀,2个不优秀的;

而在>18岁年龄特征下,有优秀的,也有不优秀的,那么总共有5个优秀,1个不优秀的;

H(x|年龄)=

3/9(-1/3*log2(1/3)-2/3*log2(2/3)) 6/9(-5/6*log2(5/6)-1/6*log2(1/6))=....

同理,会算出:

H(x|图书馆),H(x|天才少年班)

步骤三、计算哪个的信息增益大

Gain(年龄)=H(x)-H(x|年龄)=value1

Gain(图书馆)=H(x)-H(x|图书馆)=value2

Gain(天才少年班)=H(x)-H(x|天才少年班)=value3

value1>value2>value3,然后根据这个结果选取“年龄”属性最为最先分类的属性

根据年龄属性值分类之后,那么接下来数据集重新进行了划分,由重复上述步骤进行下一个分裂属性的查找。

直到到所有的特征都用完了,二是划分后额信息增益足够小,那么决策树的生长就可以停止了,最终构成一颗决策树!

以上就是用ID3算法实现决策树生成的全部过程,欢迎评论区留言指正!

猜您喜欢: