码迷,mamicode.com
首页 > 编程语言 > 详细

mahout探索之旅——CART分类回归算法

时间:2015-04-01 22:02:53      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:算法   分类   回归   


CART算法原理与理解

CART算法的全称是分类回归树算法,分类即划分离散变量;回归划分连续变量。他与C4.5很相似,但是一个二元分类,采用的是类似于熵的GINI指数作为分类决策,形成决策树之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法。

GINI指数

GINI指数主要是度量数据划分或训练数据集D的不纯度为主,系数值的属性作为测试属性,GINI值越小,表明样本的纯净度越高(即该样本属于同一类的概率越高)。选择该属性产生最小的GINI指标的子集作为它的分裂子集。比如下面示例中一项是3人有房,0人无房的欠款记录(GINI=0,三个有房的全部都不欠款,是不是纯度相当高,GINI却甚小。

在节点t时,GINI指数公式:

技术分享

是节点t中类j所占的比例。GINI的值范围。

构建决策树

构建决策树时通常采用自上而下的方法,在每一步选择一个最好的属性来分裂。 "最好" 的定义是使得子节点中的训练集尽量的纯度。不同的算法使用不同的指标来定义"最好"。一般有4中不同的不纯度量可以用来发现CART模型的划分,取决于目标变量的类型,对于分类的目标变量,可以选择GINI双化或有序双化;对于连续的目标变量,可以使用最小二乘偏差(LSD)或最小绝对偏差(LAD)。这里当然选择GINI指数。

算法的最佳分割点

数值型变量:(比如工资的高低)对记录的值从小到大排序,计算每个值作为临界点产生的子节点的异质性统计量。能够使异质性减小程度最大的临界值便是最佳的划分点。

       分类型变量:列出划分为两个子集的所有可能组合,计算每种组合下生成子节点的异质性。同样,找到使异质性减小程度最大的组合作为最佳划分点。

决策树规模

       一般在示例中展示的都是低深度模型,所以也不会出现决策树的规模的问题。在实际的应用中,决策树规模受用户对深度要求、节点纯度、节点样本个数等影响、,因此这就决定了需要对决策树进行停止生长的限制(剪枝)。

       剪枝必要性:当分类回归过于细化,会导致过拟合问题。

       前剪枝:停止生长策略(深度到达某个值就停止生长、纯度全都超过某个值时不再划分);

       后剪枝:在允许决策树达到充分伸张后,自下而上的逐层剪枝(GINI指数明显接近零,也就是属性分类的某一类特别占优势)。

示例(训练集)

对如下递归划分方式如何建立决策树?从而预测拖欠贷款的人群。

计算GINI指数,选择分割点

技术分享

计算GINI指数,选择分割点

技术分享技术分享

生成决策树

技术分享

(不好意思,不想画表格,所以全部截图上传的,博文一直没更新就是不太想编辑)

参考文献

1.http://wenku.baidu.com/link?url=-U2IM6cEZtFCgqYl1XRwrRwpsxmVde-x29iZpoo_GAtswaEeIchz-WOwjQcJe_2i7Kje2kVu_P_xi9SAfcA5ACWKk-lbZjmWx1MLsUVQIfW





mahout探索之旅——CART分类回归算法

标签:算法   分类   回归   

原文地址:http://blog.csdn.net/yxb3158/article/details/44812037

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