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

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

时间: 2024-12-20 04:28:23

mahout探索之旅——CART分类回归算法的相关文章

CART分类回归树算法

CART分类回归树算法 与上次文章中提到的ID3算法和C4.5算法类似,CART算法也是一种决策树分类算法.CART分类回归树算法的本质也是对数据进行分类的,最终数据的表现形式也是以树形的模式展现的,与ID3,C4.5算法不同的是,他的分类标准所采用的算法不同了.下面列出了其中的一些不同之处: 1.CART最后形成的树是一个二叉树,每个节点会分成2个节点,左孩子节点和右孩子节点,而在ID3和C4.5中是按照分类属性的值类型进行划分,于是这就要求CART算法在所选定的属性中又要划分出最佳的属性划分

机器学习技法-决策树和CART分类回归树构建算法

课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增强(AdaBoost) Bagging和AdaBoost算法再分类的时候,是让所有的弱分类器同时发挥作用.它们之间的区别每个弱分离器是否对后来的blending生成G有相同的权重. Decision Tree是一种有条件的融合算法,每次只能根据条件让某个分类器发挥作用. 二.基本决策树算法 1.用递

数据挖掘十大经典算法--CART: 分类与回归树

一.决策树的类型  在数据挖掘中,决策树主要有两种类型: 分类树 的输出是样本的类标. 回归树 的输出是一个实数 (比如房子的价格,病人呆在医院的时间等). 术语分类和回归树 (CART) 包括了上述两种决策树, 最先由Breiman 等提出.分类树和回归树有些共同点和不同点-比如处理在何处分裂的问题. 分类回归树(CART,Classification And Regression Tree)也属于一种决策树,之前我们介绍了基于ID3和C4.5算法的决策树. 这里仅仅介绍CART是如何用于分类

机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树

摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),本文介绍了CART用于离散标签分类决策和连续特征回归时的原理.决策树创建过程分析了信息混乱度度量Gini指数.连续和离散特征的特殊处理.连续和离散特征共存时函数的特殊处理和后剪枝:用于回归时则介绍了回归树和模型树的原理.适用场景和创建过程.个人认为,回归树和模型树

模式识别:分类回归决策树CART的研究与实现

摘 要:本实验的目的是学习和掌握分类回归树算法.CART提供一种通用的树生长框架,它可以实例化为各种各样不同的判定树.CART算法采用一种二分递归分割的技术,将当前的样本集分为两个子样本集,使得生成的决策树的每个非叶子节点都有两个分支.因此,CART算法生成的决策树是结构简洁的二叉树.在MATLAB平台上编写程序,较好地实现了非剪枝完全二叉树的创建.应用以及近似剪枝操作,同时把算法推广到多叉树. 一.技术论述 1.非度量方法 在之前研究的多种模式分类算法中,经常会使用到样本或向量之间距离度量(d

CART分类与回归树与GBDT(Gradient Boost Decision Tree)

一.CART分类与回归树 资料转载: http://dataunion.org/5771.html Classification And Regression Tree(CART)是决策树的一种,并且是非常重要的决策树,属于Top Ten Machine Learning Algorithm.顾名思义,CART算法既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree).模型树(Model Tree),两者在建树的过程稍有差异.CAR

CART(分类回归树)

1.简单介绍 线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外).当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙.此外,实际中很多问题为非线性的,例如常见到的分段函数,不可能用全局线性模型来进行拟合. 树回归将数据集切分成多份易建模的数据,然后利用线性回归进行建模和拟合.这里介绍较为经典的树回归CART(classification and regression trees,分类回归树)算法. 2.分类回归树基本流程 构建树: 1.找到[最佳待切分

SparkMLlib学习分类算法之逻辑回归算法

SparkMLlib学习分类算法之逻辑回归算法 (一),逻辑回归算法的概念(参考网址:http://blog.csdn.net/sinat_33761963/article/details/51693836) 逻辑回归与线性回归类似,但它不属于回归分析家族(主要为二分类),而属于分类家族,差异主要在于变量不同,因此其解法与生成曲线也不尽相同.逻辑回归是无监督学习的一个重要算法,对某些数据与事物的归属(分到哪个类别)及可能性(分到某一类别的概率)进行评估. (二),SparkMLlib逻辑回归应用

Spark MLlib中分类和回归算法

Spark MLlib中分类和回归算法: -分类算法: pyspark.mllib.classification -朴素贝叶斯 NaiveBayes -支持向量机(优化:随机梯度下降)SVMWithSGD -逻辑回归  LogisticRegressionWithSGD // 从Spark 2.0开始,官方推荐使用BFGS方式优化LR算法 LogisticRegressionWithBFGS // 针对流式数据实时模型训练算法 StreamingLogisticRegressionWithSGD