机器学习-Random Forest算法简介
来源:互联网 发布:哈长城市群知乎 编辑:程序博客网 时间:2024/04/20 01:10
Random Forest是加州大学伯克利分校的Breiman Leo和Adele Cutler于2001年发表的论文中提到的新的机器学习算法,可以用来做分类,聚类,回归,和生存分析,这里只简单介绍该算法在分类上的应用。
Random Forest(随机森林)算法是通过训练多个决策树,生成模型,然后综合利用多个决策树进行分类。
随机森林算法只需要两个参数:构建的决策树的个数t,在决策树的每个节点进行分裂时需要考虑的输入特征的个数m。
1. 单棵决策树的构建:
(1)令N为训练样例的个数,则单棵决策树的输入样例的个数为N个从训练集中有放回的随机抽取N个训练样例。
(2)令训练样例的输入特征的个数为M,切m远远小于M,则我们在每颗决策树的每个节点上进行分裂时,从M个输入特征里随机选择m个输入特征,然后从这m个输入特征里选择一个最好的进行分裂。m在构建决策树的过程中不会改变。
(3)每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。不需要剪枝。
2. 随机森林的分类结果
按照1生成t个决策树之后,对于每个新的测试样例,综合多个决策树的分类结果来作为随机森林的分类结果。
(1)目标特征为数字类型:取t个决策树的平均值作为分类结果。
(2)目标特征为类别类型:少数服从多数,取单棵树分类结果最多的那个类别作为整个随机森林的分类结果。
3. 分类效果的评价
在随机森林中,无需交叉验证来评价其分类的准确性,随机森林自带OOB(out-of-bag)错误估计:
OOB:在构造单棵决策树时我们只是随机有放回的抽取了N个样例,所以可以用没有抽取到的样例来测试这棵决策树的分类准确性,这些样例大概占总样例数目的三分之一(作者这么说的,我还不知道理论上是如何出来的,但是可以自己做试验验证)。所以对于每个样例j,都有大约三分之一的决策树(记为SetT(j))在构造时没用到该样例,我们就用这些决策树来对这个样例进行分类。我们对于所有的训练样例j,用SetT(j)中的树组成的森林对其分类,然后看其分类结果和实际的类别是否相等,不相等的样例所占的比例就是OOB错误估计。OOB错误估计被证明是无偏的。
参考文献:
[1] Mahout Wiki-Random Forest
[2] Leo Breiman 2001年的paper
[3] Breiman自己对Random Forest的介绍
[4] 交叉验证介绍
- 机器学习-Random Forest算法简介
- 机器学习-Random Forest算法简介
- 机器学习-Random Forest算法简介
- Random Forest算法简介
- 机器学习笔记-Random Forest
- 机器学习技法-Random Forest
- 机器学习算法之随机森林(Random Forest)
- 机器学习算法之随机森林(Random Forest)
- 《机器学习技法》第十讲:Random Forest
- 机器学习:随机森林(Random Forest)
- 机器学习实验---random forest的实现~
- 机器学习算法原理总结系列---算法基础之(3)随机森林(Random Forest)
- 机器学习中的算法:决策树模型组合之随机森林(Random Forest)
- 机器学习技法课程学习笔记10 -- Random Forest
- 台大机器学习听课笔记---Random Forest 10-1
- 机器学习基础(二十四)—— Random Forest
- Udacity机器学习入门笔记——Random Forest
- scikit-learn使用OneHotEncoder处理Nominal属性的机器学习流程(Random Forest算法为例)
- CEditor里鼠标悬停在word上显示对应声明代码的提示框的代码
- android—Intent发送文本email
- C# WinForm多线程开发(二) ThreadPool 与 Timer
- 第七周作业项目---体验常成员函数
- 内存泄露检测—VLD工具
- 机器学习-Random Forest算法简介
- 感冒了
- Spring 3.0参考手册之SpEL
- AnkhSvn安装及使用
- CBuilder6安装后运行报错,打开工程选项崩溃的处理方法—Win 2008R2或Win7
- centos 桌面没有终端
- 【LeetCode】Distinct Subsequences
- 18个不可不知的有用潜规则
- TYVJ 1044 数字三角形