码迷,mamicode.com
首页 > 其他好文 > 详细

决策树一

时间:2016-12-14 01:41:29      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:属性   time   多个   处理   剪枝   数据集   概率   决策   c4.5   

 

决策树是一种对样本进行划分的机器学习算法,其要点在于最优特征的选取,决策树生成与剪枝,决策树的生成是个递归过程,其中有三种情况会导致递归返回:

①当前节点所属样本属于同一类而不需要划分;

②所有样本在所有属性上取值相同而不能划分;

③当前没有所属样本

 

对于属性的选取主要有三种方法:

一. 基于信息增益的选取划分方法,对应于ID3决策树学习算法

信息熵的定义如下:

\[H(X) = - \sum\limits_{i = 1}^n {{p_i}} \times {\log _2}{p_i}\] 

其中Pi为X取值Xi时的概率,在分类中就对应于样本分类结果占总样本的比重

信息增益定义如下:

\[G(D) = H(D) - \sum\limits_{i = 1}^N {\frac{{{D_i}}}{D}} H({D_i})\]

H(D)为样本集的信息熵,i为属性可能的取值,\[{\frac{{{D_i}}}{D}}\]为该属性取值占总样本的比重,

\[H({D_i})\]为该属性取值的信息熵

该选取方法要求计算每个属性的信息增益,然后选取信息增益最大的属性作为划分属性,如果有多个属性同时取得最大增益,则可任选其一作为划分属性,之后再对分支重复上述划分操作,最终生成决策树

二. 基于增益率的划分方法,对应于C4.5算法

\[{G_r}(D,a) = \frac{{G(D,a)}}{{H(D)}}\]

其中

\[H(D) =  - \sum\limits_{v = 1}^V {\frac{{{D_v}}}{D}} {\log _2}\frac{{{D_v}}}{D}\]

Dv/D为属性a取值所属样本占总样本的比重

C4.5算法是从待选属性中选出信息增益高于平均水平的属性,再从中选出增益率最大的最为划分属性

三. 基于基尼指数的划分方法,对应于CART算法

数据集的纯度可以用基尼值来衡量,基尼值定义如下:

\[Gini(D) = 1 - \sum\limits_{K = 1}^y {p_k^2} \]

基尼值越小,属性的纯度越高

基尼指数定义如下:

\[Gini\_index(D,a) = \sum\limits_{v = 1}^V {\frac{{{D^v}}}{D}} Gini({D^v})\]

选择基尼指数最小的属性作为优先划分属性

 

决策树在训练过程中可能会产生过拟合问题,解决这个问题的办法是进行剪枝处理,剪枝有二种方法:

一.预剪枝

即在生成决策树的过程中,划分节点前评估该节点的划分能不能带来泛化能力的提升,能则划分,不能则不进行划分

二. 后剪枝

生成决策树后,自底向上进行考察,把非叶节点替换为叶节点能不能带来泛化能力的提升,能则进行替换

决策树一

标签:属性   time   多个   处理   剪枝   数据集   概率   决策   c4.5   

原文地址:http://www.cnblogs.com/yueze/p/6146881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!