随机森林(Random Forest)算法
目录
简介
决策树
概念
定义
如何构建?
优点
缺点
集成学习
特点
错误率
种类
自主采样法(Boostrap Sampling)
概念
拓展
随机森林
概念
优点
缺点
简介
一种分类算法,属于集成学习中的Bagging算法,即引导聚合类算法,由于不专注于解决困难样本,所以模型的performance会受到限制。
在介绍随机森林算法之前,首先要弄懂三个概念:
- 决策树
- 集成学习(Ensemble Learning)[多分类系统]
- 自主采样法(Boostrap Sampling)
决策树
概念
随机森林由多个决策树组成。
定义
为了达到目标根据一定的条件进行选择的过程称为决策树。
如何构建?
熵:表示决策树分支下样本种类的丰富性
随着树的深度增加,要使熵降低(熵降低的速度越快,决策树效率越高)
构成决策树的是结点和边:
结点根据样本特征进行判断(如苹果的大小、味道、形状等)
最初的分支点被称为根节点(如图片中的 SIZE ),其余的被称为子节点
不再有分支的节点则被称为叶子结点,代表样本分类的结果
边指示的就是方向(如 YES 或 NO )
优点
- 具有天然可解释性(比如一个好的苹果就是又大又甜又红)
缺点
- 会发生过拟合(因为数据会存在特例)
如何解决过拟合问题?
运用剪枝手段
- 预剪枝:训练前规定条件(如达到某深度就停止训练)
- 后剪枝:先找到决策树,根据条件限制叶子结点个数
集成学习
特点
- 集合多个算法(多个算法可相同可不同)
- 由训练数据构成一组基分类器
- 多个决策者共同进行一项决策
错误率
根据Hoeffding不等式,集成学习的错误率为:
Hoeffding不等式了解网址: https://blog.csdn.net/z_x_1996/article/details/73564926
其中 T 代表的是分类器的数目(在随机森林中指的是决策树的数目)
种类
- Bagging(装袋法):如随机森林,每个模型相互独立,相互平行
- Boosting(提升法):模型循序渐进,依次增强,基评估器相互关联
自主采样法(Boostrap Sampling)
概念
在现实任务中,个体学习器是为解决同一个问题训练出来的,它们之间是不可能完全独立的,虽然“独立”在现实任务中无法做到,但可以设法使基学习器尽可能的具有较大的差异,由此我们引入了自助采样法(Bootstrap sampling)用于解决独立问题,即让基学习器尽可能具有较大差异。
利用重抽样(Re-sample):有放回的抽取,对应随机森林的 “随机” 。
拓展
划分数据集最大的原则:将无序的数据变得更加有序。
在划分数据集前后信息发生的变化成为信息增益(information gain),知道如何计算信息增益,我们就可以计算每一个特征划分数据集后获得的信息增益,获得信息增益最高的特征是最好的选择。
信息学鼻祖香农提出了划时代的公式将信息量化,即信息熵函数,对信息论有兴趣的同学可以查阅香农的百度百科或者观看B战视频:https://www.bilibili.com/video/BV1fq4y1g7hq 。看完这个视频你会初步了解香农公式对于整个世界的影响以及为何华为能领跑5G时代。
或者阅读这篇文章:https://www.zhihu.com/question/27068465/answer/96502561
随机森林
现在我们可以了解随机森林了。
概念
随机森林即由多个决策树组成,每个决策树并不相同,在构建决策树时,我们从训练数据中有放回的随机选取一部分样本,并且也不会使用数据的全部特征,而是随机选取部分特征进行训练。每棵树使用的样本和特征都不相同,训练出的结果也不相同。
这么做的原因:为开始训练前,无法知道哪部分数据存在异常样本,也无法知道哪些特征最能决定分类结果,随机过程降低了两个影响因素对于分类结果的影响。
优点
- 采用集成算法,准确性高
- 不容易发生过拟合(样本随机,特征随机)
- 抗噪声能力强(噪声指的是异常数据)
- 能处理特征较多的高维数据
- (不知道用什么分类方法时就试试随机森林)
- 多个决策树相互独立,节省时间
缺点
- 随机森林并不能给出一个连续的输出。当进行回归时,随机森林不能够做出超越训练集数据范围的预测,这可能导致在某些特定噪声的数据进行建模时出现过度拟合。
- 有许多不好解释的地方,有点算黑盒模型,无法控制模型内部的运行。只能在不同的参数和随机种子之间进行尝试。
- 对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)。
总结来源:
[1] https://www.bilibili.com/video/BV11i4y1F7n4
[2] https://www.bilibili.com/video/BV1HV411b7JR
[3] https://www.bilibili.com/video/BV1fq4y1g7hq
[4] https://www.bilibili.com/video/BV1H5411e73F
[5] https://www.bilibili.com/read/cv6765576
[6] https://baike.baidu.com/item/%E9%9A%8F%E6%9C%BA%E6%A3%AE%E6%9E%97/1974765?fr=aladdin
随机森林(Random Forest)算法相关推荐
- 机器学习方法(六):随机森林Random Forest,bagging
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 前面机器学习方法(四)决策树讲了经典 ...
- 随机森林Random Forest,bagging
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 前面机器学习方法(四)决策树讲了经 ...
- 初勘数据处理之预测算法(随机森林random forest)附matlab源码
初勘数据处理之预测算法(随机森林random forest)附matlab源码 集成学习方法 集成学习方法,是整合多个分类方法的预测结果,以提高分类准确率.集成学习方法先用训练数据构建一组基分类器,再 ...
- 【机器学习】随机森林 – Random forest
文章目录 一.随机森林是什么? 1. 随机森林是一种集成学习算法 2. 随机森林的基学习器是决策树 二.随机森林 – Random Forest | RF 三.构造随机森林的 4 个步骤 四.随机森林 ...
- 随机森林 – Random forest
随机森林 – Random forest 随机森林是一种由决策树构成的集成算法,他在很多情况下都能有不错的表现. 本文将介绍随机森林的基本概念.4 个构造步骤.4 种方式的对比评测.10 个优缺点和 ...
- 通俗解读随机森林Random Forest
通俗解读随机森林Random Forest 写在前面 1. 什么是集成学习 2. 什么是Bagging 3 随机森林 写在前面 声明:本文主要参考的是周志华老师的<机器学习>西瓜书,参杂了 ...
- 【ML】随机森林(Random Forest) 从入门到放弃再到掌握
目录 集成学习 决策树 Boosting Adaboost GBDT 梯度提升决策树是属于boosting集成学习的一种方法,通过构建多颗CART回归树,每一轮利用上一轮学习器的残差进行树的创建.该残 ...
- 随机森林(Random Forest)和梯度提升树(GBDT)有什么区别?
随机森林(Random Forest)和梯度提升树(GBDT)有什么区别? 随机森林属于 集成学习 中的 Bagging(Bootstrap AGgregation 的简称) 方法. 随机森林是由很多 ...
- 随机森林(Random Forest)面试高频题
推荐一篇写的很好的博客:[Machine Learning & Algorithm] 随机森林(Random Forest). 一.随机森林算法的原理 随机森林算法是Bagging集成框架下的 ...
- R语言分类算法之随机森林(Random Forest)
1.原理分析: 随机森林是通过自助法(boot-strap)重采样技术,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练集样本集合,然后根据自助样本集生成k个决策树组成的随机森林,新数据的 ...
最新文章
- SharedPreferences小细节
- 大型高并发高负载网站的系统架构(转)
- 操作系统二:计算机内存体系
- 怎么测并发 PHP,PHP接口并发测试的方法(推荐)
- 浙江大学远程教育学院计算机考试,浙江大学远程教育学院机试题 Windows操作题(共15分,若有做错请酌情 ....docx...
- javafx窗体程序_JavaFX真实世界应用程序:EIZO CuratOR Caliop
- 图片批量转换pdf文件
- 手把手教你用Python搭建一个AI智能问答系统
- 一个 38 岁程序员的中年危机
- React入门基础+练习(二)
- caffe中pad的作用
- 130242014039-(2)-体验敏捷开发
- asp.net电子商务开发实战 视频 第三讲(门类列表)
- linux日志过大怎么查看,Linux查看日志常用命令
- 【MyEclipse】配置代码格式化模版
- Boggle单词游戏求解
- 华为手机开机卡在开机画面,该怎么解决呢?
- 给Scrum master的10条暖心建议
- python微信群管理开禁言_怎么设置群管理员-微信群最需要的,是禁言功能
- Spring Security(1) 入门体验