本文主要是介绍6.0 —随机森林原理(RF)和集成学习(Bagging和Pasting),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们这边先介绍集成学习
什么是集成学习
我们已经学习了很多机器学习的算法。比如KNN,SVM.逻辑回归,线性回归,贝叶斯,神经网络等等,而我们的集成学习就是针对某一个问题,我们使用多个我们已经学过的算法,每个算法都会得出一个结果。然后采用投票的方法,少数服从多数,得出最终结果。这就是voting classifier
我们看下代码:
我们手写的集成学习方法,和scikit-learn 中的集成学习方法,最终得到的结果是一样的
我们可以注意到,在scikit-learn中,我们有个参数叫voting = ‘hard’
其实这个参数代表的就是我们使用投票的方法做预测。我们称之为 hard voting classifier
当然有hard,同样有soft voting classifier:
我们想一下,我们在做投票的时候,不同的角色投的票应该加上权值,简单的说术业有专攻,专业人对相应专业的问题的回答的权重应当是要高一点的。
给投票加上权值,就是我们说的soft voting classifier
用图来表示下:
所以,基于我们的soft voting,就要求我们的每一个模型都要能估算概率
但是,这里还有一个问题就是就算我们的模型有几个,但是对我们投票的机制来说,数量还是太小了。
所以我们考虑将我们在我们的样本数据中本次拿出一部分数据出来作为训练集。
比如,500个样本数据每次拿出100个,
拿样本数据有2种,一种就是不放回取样,称为pasting
一种是放回取样,称为bagging,bagging会更常用。统计学中也叫bootstrap
如果我们的样本数量减少了,每个模型的准确率肯定会随之下降,
但是,如果我们模型足够多的,准确率可能会比但是模型训练更高。
我们来看下
当然,我们不可能每个模型都这么高达60%准确率,但是得出来的结果还是很好的、
关于参数的学习可以自学
如果我们在取样中没有取到一些数据,我们直接拿这些数据用来当我们的测试集。
有个oob_score_属性可以直接取到
随机森林:
看图中,结合我们刚才说的集成学习。
使用决策树作为我们的基本算法,采用bagging的取样方式,进行集成学习就叫做随机森林
还有一种extra tree
其他的等下次有时间再写了。还有关于boosting,stacking之类的
这篇关于6.0 —随机森林原理(RF)和集成学习(Bagging和Pasting)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!