机器学习技法-决策树和CART分类回归树构建算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture
重要!重要!重要~

一、决策树(Decision Tree)、口袋(Bagging),自适应增强(AdaBoost)

- Bagging和AdaBoost算法再分类的时候,是让所有的弱分类器同时发挥作用。它们之间的区别每个弱分离器是否对后来的blending生成G有相同的权重。
- Decision Tree是一种有条件的融合算法,每次只能根据条件让某个分类器发挥作用。
二、基本决策树算法
1.用递归的视角来看决策树,根据特征选择分支条件,不断的生成子树,所有的子数组成了最后的决策树。
例如下面根据回家时间、约会情况、作业的deadline的特征,生成决策树,预测是否会观看mooc在线课程。

2.基本的决策树算法描述
- 确定分支条件。分支条件可以由人来确定,也可以由算法生成
- 根据分支条件划分训练数据D
- 根据分支条件不断递归生成子树,直到满足终止条件
- 为了防止过拟合,限制模型的复杂度,通常都会通过剪枝(Pruning)来正则化决策树
三、CART算法(分类回归树)
林这里讲的很容易理解,可以参考:http://blog.csdn.net/u011067360/article/details/24871801?utm_source=tuicool&utm_medium=referral
- CART是只有两个分支的二叉树
- 根据“纯度”确定分支的条件。对于分类的通常选择GINI,对于连续的目标变量可以使用LSD或者LAD。
GINI指数:介于0~1之间的数,0-完全相等,1-完全不等。总体内包含的类别越杂乱,GINI指数就越大(和熵的概念类似)。

- 根据GINI找到最佳的待切分特征
- 如果该节点不能再分,将该节点存为叶节点
- 执行二元切分
- 在右子树递归调用createTree()方法,创建子树
- 在右子树递归调用createTree()方法,创建子树
四、CART和AdaBoost元算法应用比较
CART相比AdaBoost的效率会高一些,因为前者是“有条件的切”,后者是完全的“横、竖”。

五、CART实践中的特点

机器学习技法-决策树和CART分类回归树构建算法的更多相关文章
- 决策树的剪枝,分类回归树CART
决策树的剪枝 决策树为什么要剪枝?原因就是避免决策树“过拟合”样本.前面的算法生成的决策树非常的详细而庞大,每个属性都被详细地加以考虑,决策树的树叶节点所覆盖的训练样本都是“纯”的.因此用这个决策树来 ...
- 机器学习之分类回归树(python实现CART)
之前有文章介绍过决策树(ID3).简单回顾一下:ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息增益来实现的.按照某种特征切分数据后,该特征在以后切分数据集时就不再使用,因此存在切分 ...
- 秒懂机器学习---分类回归树CART
秒懂机器学习---分类回归树CART 一.总结 一句话总结: 用决策树来模拟分类和预测,那些人还真是聪明:其实也还好吧,都精通的话想一想,混一混就好了 用决策树模拟分类和预测的过程:就是对集合进行归类 ...
- CART决策树(分类回归树)分析及应用建模
一.CART决策树模型概述(Classification And Regression Trees) 决策树是使用类似于一棵树的结构来表示类的划分,树的构建可以看成是变量(属性)选择的过程,内部节 ...
- 分类回归树(CART)
概要 本部分介绍 CART,是一种非常重要的机器学习算法. 基本原理 CART 全称为 Classification And Regression Trees,即分类回归树.顾名思义,该算法既 ...
- 利用CART算法建立分类回归树
常见的一种决策树算法是ID3,ID3的做法是每次选择当前最佳的特征来分割数据,并按照该特征所有可能取值来切分,也就是说,如果一个特征有四种取值,那么数据将被切分成4份,一旦按某特征切分后,该特征在之后 ...
- 分类-回归树模型(CART)在R语言中的实现
分类-回归树模型(CART)在R语言中的实现 CART模型 ,即Classification And Regression Trees.它和一般回归分析类似,是用来对变量进行解释和预测的工具,也是数据 ...
- CART(分类回归树)
1.简单介绍 线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外).当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙.此外,实际中很多问题为非线性的,例如常 ...
- 连续值的CART(分类回归树)原理和实现
上一篇我们学习和实现了CART(分类回归树),不过主要是针对离散值的分类实现,下面我们来看下连续值的cart分类树如何实现 思考连续值和离散值的不同之处: 二分子树的时候不同:离散值需要求出最优的两个 ...
随机推荐
- asp.net下ajax.ajaxMethod使用方法
使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法,做一些JS无法做到的操作,如查询数据库. 使用AjaxMethod要满足一下几点: 1.如果 ...
- spring mvc如何获取问号后的url参数
@RequestMapping(method=RequestMethod.GET) public ModelAndView allUsers(@RequestParam int page){ Mode ...
- AFNetworking框架使用
本文是由 iOS Tutorial 小组成员 Scott Sherwood撰写,他是一个基于位置动态加载(Dynamically Loaded)的软件公司(专业的混合定位)的共同创办人. 网络 — 你 ...
- Protocol Buffers in HBase
For early Hbase developers, it is often a nightmare to understand how the different modules speak am ...
- js 替换 当前URL 特定参数
js 替换 当前URL 特定参数 2012-12-24 20:45:53| 分类: JS&JQuery |举报 |字号 订阅 //替换指定传入参数的值,paramName为参数,repl ...
- 数组越界保护与消息传递black机制
数组越界保护if(index.row <= [array count]) 发送消息[[NSNotificationCenter defaultCenter] postNotificati ...
- JavaScript数字精度上代码。
/**不能超过 9007199254740992 * floatObj 包含加减乘除四个方法,能确保浮点数运算不丢失精度 * * 我们知道计算机编程语言里浮点数计算会存在精度丢失问题(或称舍入误差), ...
- C++-函数模板特化如何避免重复定义
我正在用一个基于模板的库源代码,该库包含一些针对特定类型的模板函数特化.类模板,函数模板和模板函数特化都在头文件中.我在我的.cpp文件中 #include 头文件并编译链接工程.但是为了在整个工程 ...
- C#根据当前日期获取星期和阴历日期
private string GetWeek(int dayOfWeek) { string returnWeek = ""; switch (dayOfWeek) { case ...
- POJ 1777 mason素数
题目大意: 给定数列 a1 , a2 , ... , an 希望找到一个 N = sigma(ai^ki) , (0<=ki<10) ,ki可随自己定为什么 只要保证N的因子和可以表示 ...