机器学习-集成算法-基本原理
集成学习(ensemble learning)是目前比较受欢迎的机器学习算法之一,能解决大部分的问题。所谓集成,就是将各种算法和策略集中起来,(集中力量办大事)可以适用与回归、分类问题。其核心思想:bagging、boosting、stacking
前言
文章字数4571:建议阅读时间:10s
提示:全理论,无代码和案例
提示:以下是本篇文章正文内容,下面案例可供参考
一、bagging算法
1.并行集成
bagging(boostrap aggregating)说白了就是有放回的随机抽样方法,各种基础模型计算出来的结果,取均值。
2.随机森林
随机森林是bagging最实用的算法之一。
理解:
随机:(二重随机)1.数据的采样是随机的(有放回随机抽取80%的样本作为测试集),2.随机抽取特征建模(随机选择60%的特征来建模)
森林:一个一个决策树组合起来,构成了森林的多样性。
看图:
(百度图片)
随机森林的目的创建多个树模型来寻找做可靠最稳定的结果。
特点:
1.并联形式,不会相互干扰,但是也存在个别的树产生的结果对模型结果产生一个负向作用。
2.可以可视化
3.相当于半自动进行特征选择,总会先用最好的特征,在特征工程中省时省力,还能对特征重要性进行评估。
二、boosting算法
1.串行的集成
Boosting算法是将前一轮得到的整体,这个整体已经包含多个树模型,再往整个模型中加入一个树模型时,必须要满足一个条件,就是组合之后,模型效果要比前一轮好。
问题来了?模型怎么判断好坏呢?
举个例子:
假设我们的真实数据为100,第一轮A树进行预测围为95,还不错!
第二轮添加B树,这里B树不是去预测A树的同样工作,比如预测为96。NO,它要干的事情是将残差100-95=5,把5作为真实数据,假设B树预测了3,这是AB两树的预测结果为95+3=98,还有残差100-98=2
第三轮添加C树,2作为真实数据,假设C树预测了1.5,整体树模型预测结果就是95+3+1.5=99.5
2.Adaboost
它是一个串行算法,就是将一个一个的模型串联在一起,但是对于每个基础模型引入一个alph系数,来权衡每个基础模型的重要程度。对一些分错的样本,权重相对较高,对于一些分类正确的样本,就不需要过多的权重。每一次划分数据集时,都会出现不同的错误样本,继续重新调整权重,每次划分都相当于得到一个基础的树模型。
三、stacking算法
可以使用多个算法模型(SVM、逻辑回归、神经网络等等)来一起完成一个任务。简称-组合学习器
具体流程我弄不太明白