程序员Python3机器学习大数据,机器学习,人工智能

Python3机器学习实践:集成学习

2018-11-26  本文已影响7人  AiFany
ee.png
这个时代,如果你觉得自己不够强,那就找几个人联合起来。机器学习亦如此。 
image

集成学习是一种将几种机器学习模型组合成一个模型的元算法(meta-algorithm),以减小方差(例如:Bagging),偏差(例如:Boosting),或者改进预测(例如:Stacking)。

  1. 串行集成方法:多个模型顺序生成。此方法是利用模型之间的依赖关系。算法可以通过提高被分错样本的权重来提高性能。具体参见Bagging。

  2. 并行集成方法:多个模型并行生成。此方法是利用模型之间的独立性,因为可以通过平均来降低误差。具体参见Boosting。

  3. 树行集成方法:这种方法可分多层,每一层可包括多种模型,下层的训练数据集为上一层的训练结果,类似于树。具体参见Stacking。

image

一、Bagging

Bagging:也就是自举汇聚法(Bootstrap Aggregating),步骤如下:

  1. 在包含N个样本的数据集中采用有放回的抽样方式随机抽取一定数量(可以为N)的样本,构成一个数据集;

  2. 按照步骤1中的方式得到M个数据集;

  3. 利用机器学习的方法(例如:SVM,决策树,神经网络……)对得到的M个数据集,训练出M个弱模型(比随机模型效果好);

  4. 集成M个弱模型的结果作为最终结果;

Bagging就是通过M个弱模型的结果,通过并行集成的方式来获得最终结果。因为M个数据集是相互独立的,因此这M个弱模型之间也是相互独立的,在最终的集成结果时,每个模型的权重是一样的。这是和下文的Boosting所不同的。

image

二、Boosting
Boosting步骤如下:

  1. 每一次都根据上一次训练得到的模型结果,调整数据集样本分布,然后再生成下一个模型;
  2. 直到生成M个模型;
  3. 根据M个模型的结果集成得到最终的结果;
image

三、Stacking
Stacking步骤如下:
将训练好的所有基模型对整个训练集进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。

实例代码随机森林,其他方法陆续更新。扫描下方二维码或者微信公众号直接搜索”Python范儿“,关注微信公众号pythonfan, 获取更多实例和代码。

pythonfan.jpg
上一篇 下一篇

猜你喜欢

热点阅读