1、集成学习概述

集成学习(

E

n

s

e

m

b

l

e

l

e

a

r

n

i

n

g

Ensemble learning

Ensemblelearning)的目的是让机器学习的的效果更好,一个不行,就多个一起。

常用的有三种方式

  • Bagging:训练多个分类器取平均

    f

    (

    x

    )

    =

    1

    /

    M

    m

    =

    1

    M

    f

    m

    (

    x

    )

    f(x)=1 / M \sum\limits_{m=1}^{M} f_{m}(x)

    f(x)=1/Mm=1Mfm(x)

  • Boosting:从弱学习器开始加强,通过加权来进行训练

    F

    m

    (

    x

    )

    =

    F

    m

    1

    (

    x

    )

    +

    argmin

    h

    i

    =

    1

    n

    L

    (

    y

    i

    ,

    F

    m

    1

    (

    x

    i

    )

    +

    h

    (

    x

    i

    )

    )

    F_{m}(x)=F_{m-1}(x)+\operatorname{argmin}_{h} \sum\limits_{i=1}^{n} L\left(y_{i}, F_{m-1}\left(x_{i}\right)+h\left(x_{i}\right)\right)

    Fm(x)=Fm1(x)+argminhi=1nL(yi,Fm1(xi)+h(xi))

    ​ (加入一个模型,要比原来强,例如随机森林就是加入一棵树,要比原来强)

  • Stacking:聚合多个分类或回归模型(可以分阶段来做)

2、Bagging模型

全称:

b

o

o

t

s

t

r

a

p

bootstrap

bootstrap

a

g

g

r

e

g

a

t

i

o

n

aggregation

aggregation

就是并行训练一堆分类器

2.1、

R

a

n

d

o

m

Random

Random

F

o

r

e

s

t

Forest

Forest
随机森林模型

在这里插入图片描述

构造树模型

在这里插入图片描述

由于二重随机性,使得每个树基本上都不会一样,最终的结果也会不一样

之所以要进行随机,是要保证泛化能力,如果树都一样,那就没意义了!

随机森林的优势

  • 它能够处理很高维度(

    f

    e

    a

    t

    u

    r

    e

    feature

    feature
    很多)的数据,并且不用做特征选择
  • 在训练完后,它能够给出哪些

    f

    e

    a

    t

    u

    r

    e

    feature

    feature
    比较重要
  • 容易做成并行化方法,速度比较快
  • 可以进行可视化展示,便于分析

2.2、

K

N

N

KNN

KNN
模型

在这里插入图片描述

K

N

N

KNN

KNN就不太适合,因为很难去随机让泛化能力变强!

3、

B

o

o

s

t

i

n

g

Boosting

Boosting
模型

3.1、

A

d

a

B

o

o

s

t

AdaBoost

AdaBoost

Adaboost会根据前一次的分类效果调整数据权重

如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重

在这里插入图片描述

每一次切一刀,最终合在一起,弱分类器这就升级了.

3.2、

x

g

b

o

o

s

t

xgboost

xgboost

X

G

B

o

o

s

t

XGBoost

XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了

G

B

D

T

GBDT

GBDT算法并进行了算法和工程上的许多改进,被广泛应用在

K

a

g

g

l

e

Kaggle

Kaggle竞赛及其他许多机器学习竞赛中并取得了不错的成绩。

说到

X

G

B

o

o

s

t

XGBoost

XGBoost,不得不提

G

B

D

T

(

G

r

a

d

i

e

n

t

GBDT(Gradient

GBDT(Gradient

B

o

o

s

t

i

n

g

Boosting

Boosting

D

e

c

i

s

i

o

n

Decision

Decision

T

r

e

e

)

Tree)

Tree)。因为

X

G

B

o

o

s

t

XGBoost

XGBoost本质上还是一个

G

B

D

T

GBDT

GBDT,但是力争把速度和效率发挥到极致,所以叫

X

(

E

x

t

r

e

m

e

)

G

B

o

o

s

t

e

d

X (Extreme) GBoosted

X(Extreme)GBoosted。包括前面说过,两者都是

b

o

o

s

t

i

n

g

boosting

boosting方法。

X

G

B

o

o

s

t

XGBoost

XGBoost核心算法思想不难,基本就是:

  1. 不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数

    f

    (

    x

    )

    f(x)

    f(x)
    ,去拟合上次预测的残差。
  2. 当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数
  3. 最后只需要将每棵树对应的分数加起来就是该样本的预测值。

更多

x

g

b

o

o

s

t

xgboost

xgboost内容请看终于有人说清楚了–XGBoost算法

4、

S

t

a

c

k

i

n

g

Stacking

Stacking
模型

堆叠:很暴力,拿来一堆直接上(各种分类器都来了)

可以堆叠各种各样的分类器(

K

N

N

,

S

V

M

,

R

F

KNN,SVM,RF

KNN,SVM,RF等等)

分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练

堆叠在一起确实能使得准确率提升,但是速度是个问题

参考文章

https://www.cnblogs.com/mantch/p/11164221.html


版权声明:本文为qq_50195602原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_50195602/article/details/128916910