本博客以主要笔记为主,内容来源于彭亮老师的机器学习课程。
1、决策树算法(Decision Tree):
决策树算法在机器学习中算是很经典的一个算法,决策树树是一个类似于流程图的树结构(如下图所示):其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布,树的最顶层是根结点。那么我们应该怎么构造决策树么?
2、熵(entropy)
在学习决策的构造方法之前,先学习熵的概念。
1948年,香农提出了 "信息熵(entropy)"的概念,解决了对信息的量化度量问题。信息熵理解成某种特定信息的出现概率用表示,计算公式如下:
表示输出概率函数。变量的不确定性越大,熵也就越大,把事情搞清楚所需要的信息量也就越大。
3、决策树的构造(以ID3算法为例)
以下图预测购买电脑与否的样本为例:
第一步:选择根节点
问题:怎么选择根节点?Age? Income? Student? 还是credit_rating.
定义信息获取量(Information Gain):Gain(A) = Info(D) - Infor_A(D)
根据香农公式我们可以计算属性Age的信息获取了,计算过程如下
同理我们还可以计算得到Gain(income) = 0.029, Gain(student) = 0.151, Gain(credit_rating)=0.048,可知属性Gain(max)=Gain(age),所以选择第一个节点为根节点。
第二步:绘制以Age为根节点的树图,如下:
第三步:继续计算下一个节点的各个属性信息获取量并选择信息获取量最大对应的的属性作为下一个节点,然后循坏下去,停止条件:
- :给定结点的所有样本属于同一类(如上图的middle_age)
- :没有剩余属性可以用来进一步划分样本,在此情况下,按照少数服从多数原则。
4、决策树的优缺点
优点: 直观,便于理解,小规模数据集有效。
缺点:处理连续变量不好;类别较多时,错误增加的比较快;可规模性一般。