我们这边先介绍集成学习
什么是集成学习
我们已经学习了很多机器学习的算法。比如KNN,SVM.逻辑回归,线性回归,贝叶斯,神经网络等等,而我们的集成学习就是针对某一个问题,我们使用多个我们已经学过的算法,每个算法都会得出一个结果。然后采用投票的方法,少数服从多数,得出最终结果。这就是voting classifier
我们看下代码:
文章图片
我们手写的集成学习方法,和scikit-learn 中的集成学习方法,最终得到的结果是一样的
我们可以注意到,在scikit-learn中,我们有个参数叫voting = ‘hard’
其实这个参数代表的就是我们使用投票的方法做预测。我们称之为 hard voting classifier
【6.0 —随机森林原理(RF)和集成学习(Bagging和Pasting)】当然有hard,同样有soft voting classifier:
我们想一下,我们在做投票的时候,不同的角色投的票应该加上权值,简单的说术业有专攻,专业人对相应专业的问题的回答的权重应当是要高一点的。
给投票加上权值,就是我们说的soft voting classifier
用图来表示下:
文章图片
文章图片
文章图片
所以,基于我们的soft voting,就要求我们的每一个模型都要能估算概率
但是,这里还有一个问题就是就算我们的模型有几个,但是对我们投票的机制来说,数量还是太小了。
所以我们考虑将我们在我们的样本数据中本次拿出一部分数据出来作为训练集。
比如,500个样本数据每次拿出100个,
拿样本数据有2种,一种就是不放回取样,称为pasting
一种是放回取样,称为bagging,bagging会更常用。统计学中也叫bootstrap
如果我们的样本数量减少了,每个模型的准确率肯定会随之下降,
但是,如果我们模型足够多的,准确率可能会比但是模型训练更高。
我们来看下
文章图片
文章图片
当然,我们不可能每个模型都这么高达60%准确率,但是得出来的结果还是很好的、
文章图片
关于参数的学习可以自学
如果我们在取样中没有取到一些数据,我们直接拿这些数据用来当我们的测试集。
有个oob_score_属性可以直接取到
文章图片
随机森林:
文章图片
看图中,结合我们刚才说的集成学习。
使用决策树作为我们的基本算法,采用bagging的取样方式,进行集成学习就叫做随机森林
还有一种extra tree
文章图片
其他的等下次有时间再写了。还有关于boosting,stacking之类的
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现