统计学习方法——CART, Bagging, Random Forest, Boosting
来源:互联网 发布:为什么雷姆受欢迎 知乎 编辑:程序博客网 时间:2024/04/19 21:02
本文从统计学角度讲解了CART(Classification And Regression Tree), Bagging(bootstrap aggregation), Random Forest Boosting四种分类器的特点与分类方法,参考材料为密歇根大学Ji Zhu的pdf与组会上王博的讲解。
- CART(Classification And Regression Tree)
- 那么怎么分割才是最好的呢?即怎样将输入空间分割成矩形是最佳策略呢?这里一般采用三中评价标准策略:
- 从结果可以看出CART可以通过变量选择迭代地建立一棵分类树,使得每次分类平面能最好地将剩余数据分为两类。
- classification tree非常简单,但是经常会有noisy classifiers. 于是引入ensemble classifiers: bagging, random forest, 和boosting。
- Bagging (Breiman1996): 也称bootstrap aggregation
Bagging的策略:
- 从样本集中用Bootstrap采样选出n个样本
- 在所有属性上,对这n个样本建立分类器(CART or SVM or ...)
- 重复以上两步m次,i.e.build m个分类器(CART or SVM or ...)
- 将数据放在这m个分类器上跑,最后vote看到底分到哪一类
Fit many large trees to bootstrap resampled versions of the training data, and classify by majority vote.
- Random forest(Breiman1999):
- 从样本集中用Bootstrap采样选出n个样本,预建立CART
- 在树的每个节点上,从所有属性中随机选择k个属性,选择出一个最佳分割属性作为节点
- 重复以上两步m次,i.e.build m棵CART
- 这m个CART形成Random Forest
- Boosting(Freund & Schapire 1996):
Fit many large or small trees to reweighted versions of the training data. Classify by weighted majority vote.
首先给个大致的概念,boosting在选择hyperspace的时候给样本加了一个权值,使得loss function尽量考虑那些分错类的样本(i.e.分错类的样本weight大)。
怎么做的呢?
- boosting重采样的不是样本,而是样本的分布,对于分类正确的样本权值低,分类错误的样本权值高(通常是边界附近的样本),最后的分类器是很多弱分类器的线性叠加(加权组合),分类器相当简单。
AdaBoost和RealBoost是Boosting的两种实现方法。general的说,Adaboost较好用,RealBoost较准确。
下面是AdaBoost进行权值设置与更新的过程:
以下是几个算法的性能比较:
对于多类分类(Multi-class),generalization~是类似的过程:
比如对数据进行K类分类,而不通过每次二类分类总共分K-1次的方法,我们只需要每个弱分类器比random guessing好(i.e. 准确率>1/K)
多类分类算法流程:
多类分类器loss function的设计:
===============补充===============
数据挖掘的十大算法,以后可以慢慢研究:
C4.5
K-Means
SVM
Apriori
EM
PageRank
AdaBoost
kNN
NaiveBayes
CART
===============总结===============
Boosting可以进行变量选择,所以最开始的component可以是简单变量。
Boosting可能会overfit,因此在比较早的时候就停下来是正则化boosting的一个方法。
期待更多朋友一起补充……
Reference:
1. http://cos.name/2011/12/stories-about-statistical-learning/
2. WIKI_Boosting
3. WIKI_Bagging (Bootstrap_aggregating)
4. WIKI_CART
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- CART, Bagging, Random Forest, Boosting
- 分类器:Cart,bagging,random forest boosting
- Random Forest及Bagging,boosting简介
- Ensemble learning:Bagging,Random Forest,Boosting
- Decision stump、Bootstraping、bagging、boosting、Random Forest、Gradient Boosting
- 知识总结: decision Tree, Bagging, Random Forest, Boosting
- 集成学习(ensemble learning):bagging、boosting、random forest总结
- 机器学习方法(六):随机森林Random Forest,bagging
- Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Random forest 和 gradient boosting的区别
- ZOJ Problem Set - 1649 Rescue
- hibernate中的SessionFactory,Session分别表示什么啊?如何理解?
- POJ 1141 Brackets Sequence
- 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
- EM算法原理
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 07-html5游戏坦克大战第三战(坦克移动)
- CXF ws client, dynamic endpoint and loading WSDL from the classpath
- 如何成为一名游戏设计师
- Leetcode: Pascal's Triangle
- 持续集成之路——数据访问层的单元测试
- Leetcode: Pascal's Triangle II
- (转)C++中extern “C”含义深层探索
- Linux下的java,mongodb,opencv安装