前言:
决策树是机器学习分类方法中的一个重要的算法。决策树分类一般只适用于小数据。
什么是决策树?
决策树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性的输出,而每个树叶结点代表类或类结点。树的最顶层是根节点。(根节点的选取十分重要)
熵(entropy)概念:
信息熵计算是决策树中的计算环节。
1948年,香农提出了“信息熵”的概念。
一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常不确定的事情或者是我们一无所知的事情,需要了解大量的信息。
信息量的量度等于不大确定性的大小。换句话说就是变量的不确定性越大,熵也就越大。
计算公式(以比特(bit)来衡量信息的多少):
其中:
H(x):信息x的熵
P(x):信息x的发生概率
具体计算往下看!
决策树归纳算法(ID3):
举个例子:假设有一家电脑商家统计了14个客户的信息以及是否购买电脑,用这个数据建立一个决策树。
数据如下:其中包含了4个属性:年龄阶段(年轻\中年\老年)、收入(高\低)、身份(是否学生)、信用率(好\坏),以及标志(是否买电脑)
我们需要做的就是建立是否买电脑的决策树:
首先找出根节点(树的最顶层),选择属性判断结点
方法:找出信息获取量最大的属性作为上面的结点
信息获取量(information gain),又叫信息增益:Gain(A) = Infor(D)- Infor_A(D)
Gain(A):A的信息增益
Infor(D):标志的的信息量
Infor_A(D):A信息量
可以看出Gain(age)最大,所以选取age作为根节点
接下来以同样的步骤以及算法对Youth分支、middle_aged分支、senior分支选取最佳的结点:
下面是本人自己手动算的结果,不喜勿喷,有错纠正
如果对“信息熵”概念不了解的,推荐几个帖子参考下:
http://www.jianshu.com/p/ba7199bdb36b
http://www.cnblogs.com/wentingtu/archive/2012/03/24/2416235.html
https://zhidao.baidu.com/question/1573642619898418780.html?qbl=relate_question_0