Python3机器学习实践:集成学习之Blending(模型混合
2018-12-24 本文已影响9人
AiFany
Blending.png
Blending也是一种模型融合的方法,和Stacking过程很类似。
一、Blending流程图
image二、算法步骤
1,原始训练数据集分割
将原始的训练数据集按照一定的比例分为训练数据集DT和验证(或者说测试)数据集DA。其中训练数据集的比例大概60-80%,如果这个比例太大的话,就会导致最终用于训练的数据样本数较少,因为最终用于训练的样本数就等于验证数据集的样本数数。预测数据集定义为DP。
2,构建模型阶段
假设要构建M个模型M1,M2,……MM。以模型Mi为例说明:对训练数据集DT进行学习,得到模型Mi。学习完毕后对验证数据DA的计算结果为DA_Mi,对预测数据集合的计算结果为DP_Mi。待M个模型全部建立完成后:
-
对验证数据得到的结果集合为DA_M1,DA_M2,……,DA_MM,其中每个结果序列都可看作一个新的特征,将这些新的特征排列起来看作一个训练数据集的输入,输出就是原始数据集中验证数据集的输出。输出和输入结合起来构成一个完整的训练数据集;
-
对预测数据得到的结果集合为DP_M1,DP_M2,……,DP_MM,其中每个结果序列都可看作一个新的特征,将这些新的特征排列起来看作一个预测数据集的输入;
-
对a中得到的训练数据集建立模型M0,学习完毕后,该模型对于b中得到的预测数据集进行计算,得到最终的结果;
三、Blending实例
1,北京Pm2.5预测(回归)
- Blending第一层各个模型的结果
-
第二层采用线性回归,依据不同方法求解的结果对比
1,公式法
2,梯度下降法
image2,成年人收入(分类)
- Blending第一层各个模型的结果
- 第二层采用逻辑回归的成本函数曲线
- 最终的预测数据集结果混淆矩阵
实例代码:Blending,扫描下方二维码或者微信公众号直接搜索”Python范儿“,关注微信公众号pythonfan, 获取更多实例和代码。
pythonfan.jpg