决策树算法

一.决策树算法引入

    决策树算法是一种监督学习算法,利用分类的思想,来根据数据的特征构建数模型,从而达到数据的筛选,打标签,决策的目标

1.1 通过简单的案例来说明决策树的基本概念

   现在有一批用户购买商品的统计表,其中包含了年龄、收入,是否学生,信誉等字段,以及其购买结果

 

对数据进行分析后,我们可以构造出如下的树:

以上这个例子,我们依次通过年龄、收入、是否学生、信誉进行划分形成树的结构图,在划分的过程中,我们会遇到即使收入、是否学生、信誉有差异的数据,但是只要年龄是中,他都会购买的这种情况,那么我们就将其合并,合并后就会形成上图的情况。

1.2 构建决策树的三个步骤

(1)特征选择:选取有较强分类能力的特征。

(2)决策树生成:典型的算法有 ID3 和 C4.5, 它们生成决策树过程相似, ID3 是采用信息增益作为特征选择度量, 而 C4.5 采用信息增益比率(后面再细讲)

(3)决策树剪枝:剪枝原因是决策树生成算法生成的树对训练数据的预测很准确, 但是对于未知数据分类很差, 这就产生了过拟合(分类不准)的现象。涉及算法有CART算法(后面再细讲)

二.决策树的基本概念和算法
2.1 熵和信息熵

熵:物理意义是体系混乱程度的度量

信息熵:表示事物不确定性的度量标准, 可以根据数学中的概率计算, 出现的概率就大, 出现的机会就多, 不确定性就小(信息熵小)

信息熵的计算:

   类似n次独立重复是实验概率求和

总结:变量的不确定性越大, 熵也就越大。 熵越小, 信息的纯度越高。

2.2 决策树归纳算法 - ID3算法

目的:选择属性判断节点

'信息增益':整个数据集信息熵与当前节点信息熵的差

ID3算法的案例:

以下是一份关于购买电脑的统计信息

(1)首先计算出整个数据集的信息熵:一共14条数据,最终买电脑数据9条,不买5条

(2)然后计算年龄的信息熵:一共14条数据,youth5条(yes:2 no:3),middle_aged4条(yes:4),senior5条(yes:3 no:2)

(3)然后计算age信息增益:

(4)通过类似计算的方法,分别计算出income,student,credit_rating的信息增益

 

Gain(income) = 0.029, Gain(student) = 0.151, Gain(credit_rating)=0.048
选择信息增益最大的作为第一个节点,这里选择age作为第一个节点

然后按age进行分割后,再对分割后的数据进行递归(1)(2)(3)(4)步即可完成整个决策树的建立

划分结束标志为: 子集中只有一个类别标签, 停止划分

例如:对age=youth的数据进行递归(1)~(4)步骤

Info(D) = -2/5*log2(2/5) + -3/5*log2(3/5),

age=youth :Info(income(age=youth))=2/5(-2/2log2(2/4) - 0)+ 1/5(-1/1log2(1/1)-0) +2/5(-1/2log2(1/2)-1/2log2(1/2))

age=youth :Info(student(age=youth))=...

age=youth :Info(credit(age=youth))=...

依次递归即可

id3算法的缺陷:

            1.ID3没有考虑连续特征

    2.ID3采用信息增益大的特征优先建立决策树的节点。在相同条件下,取值比较多的特征比取值少的特征信息增益大。

    3.ID3算法对于缺失值的情况没有做考虑

    4.没有考虑过拟合的问题

2.3 决策树归纳算法 - C4.5算法

    C4.5算法属于ID3算法的延伸,使用信息增益率来选则属性

    特征 A 对数据集 D 的信息增益: Gain(A) = Info(D)-Info_A(D)

    信息增益率: Gainr(A) =Gain(A) /H(A) : 其中 H(A)为 A 的熵

H(A)的计算公式:



理解:
由于在分类问题困难时候, 也就是在训练数据集经验熵(总体的 Info(D)值)
大的时候, 信息增益值会偏大(Info(D)值偏大), 如果训练数据集经验熵小的时候,
信息增益会偏小, 这时候也可以通过信息增益率来矫正这一问题。

2.4决策树归纳算法 - Cart算法

C4.5算法也属于ID3算法的延伸,使用Gini系数来选则属性

CART中采用了Gini系数来构造二叉决策树, 二分类问题中,近似于熵之半,但计算要简单一些:

D表示全样本, pi表示每种类别出现的概率, 极端情况p = 1 则Gini = 0 , 不纯度最低,最稳定。
类似的, Gini增益:

上面式子表述的意思就是,加入特征X以后,数据不纯度减小的程度。很明显,在做特征选择的时候,我们可以取ΔGini(X)最大的那个

未完待续...

 

 

 

 

发布了68 篇原创文章 · 获赞 2 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览