参考:

【1】https://blog.csdn.net/qq_39422642/article/details/78566763

【2】https://blog.csdn.net/u014356002/article/details/54376138

【3】https://blog.csdn.net/junxinwoxin/article/details/80407917

【4】https://blog.csdn.net/jiaoyangwm/article/details/81186509

【5】https://zhuanlan.zhihu.com/p/30538352

【6】https://blog.csdn.net/m0_37725003/article/details/81095555

之前在task4 模型集成的时候简单介绍过模型融合,这次又查到了一点资料,所以再来补充一丢丢。

模型融合:把独立的学习器组合起来的结果。如果独立的学习器为同质,称为基学习器(都为SVM或都为LR);如果独立的学习器为异质,称为组合学习器(将SVM+LR组合)。

为什么要进行模型融合:将几个独立学习器的结果求平均,在统计、计算效率、性能表现上都有较好的效果。

  1. 统计上:假设空间中几个学习器的假设函数的平均更接近真实的假设f
  2. 计算上:迭代求解可能落入局部最优解,但是多个局部最优解的平均更接近全局最优解,损失函数有可能不是光滑的,不同的初始点和学习率可能有不同的局部最小,将其平均能得到更好的。
  3. 性能表现上:真实的假设函数f可能不在已知的假设空间H内,学习器的平均更可能接近H外的真实假设H,如果模型本身就不具备表达场景的能力,那么无论怎么搜索H都不会搜到。

1.Bagging

从特征,参数,样本的多样性差异性来做多模型融合,参考随机森林。

2.Stacking

将训练集划分为两个正交集D1(x,y),D2(x’,y’),利用D1来学习三个模型,假设分别为LR,SVM,DT,
利用第二份数据D2的x分别作为第一层学到的三个模型的输入,得到预测值y1,y2,y3,将其组合可以得到预估的输出y^y^
已有真实输出的标签y’,可以学习到如何从预估的y^y^,来学习如何得到真实的y。
第一层的数据:为了训练得到三个模型第二层的数据:为了用三个模型来预测输出,得到的输入送入线性分类器得到最终的预估y^y^,再不断的训练模型使得模型的预估和真实的y′y′最接近,之所以将数据分成两组,是为了避免过拟合。
 也可以参见下图的例子:

stacking在第一层模型中通过交叉验证的方式生成预测的label,作为第二层线性模型的输入特征(第一层有几个模型第二层就有几个特征),一般模型差异越大融合效果越好。实际中也可以将预测的几个label特征加入到原始特征中,然后用复杂模型再次训练。

blending和stacking的比较:

blending是将train划分为2份不相交的数据,一份用来训练生成新的特征,并将其加入到第二层继续训练,第二层只用到了部分数据;
stacking将train进行cv划分来训练。第二层用到了第一层的全部数据,并且需要训练大量的模型。

3.Adaboost

4、Gradient Boosting Tree

解决回归问题

通过不断的拟合预测和真实的残差来学习,也就是每次迭代尽量拟合损失函数在当前情况下的负梯度,构建的树是能使得损失函数降低最多的学习器,来解决回归问题,调整后也能解决分类问题。


好啦,接下来是本次task的代码部分:

1. Bagging 方法,即投票法,使用sklearn.ensemble中的VotingClassifier。

#### task7 模型融合
# 1 Bagging法,使用sklearn.ensemble中的VotingClassifier
from sklearn.ensemble import VotingClassifierclf_vc = VotingClassifier(estimators=[('lr',LogisticRegression()),('DTree',DecisionTreeClassifier()),('RTree',RandomForestClassifier()),('svm',SVC()), ('xgb', XGBClassifier())])
clf_vc.fit(train_X,target_Y)
print(clf_vc.score(train_X, target_Y))

2. Stacking 方法,使用mlxtend.classifier中的StackingCVClassifier

ps:自己总是忘记SVC()内要赋值true。使用前要安装库 mlxtend。

svm=SVC(probability=True);

# 2 Stacking法
from mlxtend.classifier import StackingCVClassifier
sclf = StackingCVClassifier(classifiers=[lr,DTree,RTree,svm], meta_classifier= xgb, use_probas=True)
sclf.fit(train_X.values,target_Y.values)
print(sclf.score(train_X, target_Y))

同样的数据,投票法的结果更好些,可能是因为数据量小,所以Stacking并不占优势。

泰坦尼克号数据挖掘项目实战——Task7 模型融合相关推荐

  1. 泰坦尼克号数据挖掘项目实战——Task1 数据分析

    参考资料:https://www.bilibili.com/video/av27536643 https://blog.csdn.net/aaronjny/article/details/797359 ...

  2. SPSS Modeler数据挖掘项目实战(数据挖掘、建模技术)-张璇-专题视频课程

    SPSS Modeler数据挖掘项目实战(数据挖掘.建模技术)-1018人已学习 课程介绍         本课程以SPSS Modeler为应用软件,以数据挖掘项目生命周期为线索,以实际数据挖掘项目 ...

  3. Python机器学习/数据挖掘项目实战 波士顿房价预测 回归分析

    Python机器学习/数据挖掘项目实战 波士顿房价预测 回归分析 此数据源于美国某经济学杂志上,分析研究波士顿房价( Boston HousePrice)的数据集. 在这个项目中,你将利用马萨诸塞州波 ...

  4. 【金融风控-贷款违约预测】数据挖掘学习:5.模型融合

    学习目标 将之前建模调参的结果进行模型融合. 内容介绍 模型融合是比赛后期上分的重要手段,特别是多人组队学习的比赛中,将不同队友的模型进行融合,可能会收获意想不到的效果哦,往往模型相差越大且模型表现都 ...

  5. python数据挖掘项目实战 预测_Python机器学习/数据挖掘项目实战 泰坦尼克号Titanic生存预测 Kaggle入门比赛...

    # Titanic : Machine Learning from DisasterQuestion要求你建立一个预测模型来回答这个问题:"什么样的人更有可能生存?"使用乘客数据 ...

  6. B.数据挖掘机器学习[五]---汽车交易价格预测详细版本{模型融合(Stacking、Blending、Bagging和Boosting)}

    [机器学习入门与实践]入门必看系列,含数据挖掘项目实战:数据融合.特征优化.特征降维.探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:[机器学习入门与实践]合集入门必看系列,含数据挖掘项目实 ...

  7. B.机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)重点讲解模型验证、特征优化、模型融合等

    [机器学习入门与实践]入门必看系列,含数据挖掘项目实战:数据融合.特征优化.特征降维.探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:[机器学习入门与实践]合集入门必看系列,含数据挖掘项目实 ...

  8. 数据挖掘实践(金融风控-贷款违约预测)(五):模型融合

    数据挖掘实践(金融风控-贷款违约预测)(五):模型融合 目录 数据挖掘实践(金融风控-贷款违约预测)(五):模型融合 1.引言 2.模型融合的方式 2.1 Voting/Averaging 2.2 B ...

  9. python数据分析与挖掘项目实战记录

    python数据挖掘项目实战记录 取自<Python数据分析与挖掘实战>一书,整理各个项目中用到的数据处理方法: 数据预处理方法 建立模型方法 绘制图形 对于分类问题:用模型分类:混淆矩阵 ...

最新文章

  1. web设计经验一 提升移动设备响应式设计的8个建议
  2. Thinkphp5+PHPExcel实现批量上传表格数据
  3. jQuery队列控制方法详解queue()/dequeue()/clearQueue()
  4. TSM对Oracle数据库备份脚本
  5. 一个网页菜单的CSS代码分析
  6. 35 mysql 备份与恢复
  7. 专访阿里云 Serverless 负责人:无服务器不会让后端失业
  8. Python爬虫实战之(五)| 模拟登录wechat 1
  9. Taro小程序采坑记
  10. linux--切换ipython解释器到python3
  11. 自己的阿里云镜像加速器查找
  12. 抖音吸粉_抖音吸粉六大技巧
  13. mybatis中selectOne方法分析
  14. 通达信波段王指标公式主图_通达信波段操盘主图指标公式
  15. zlib库介绍四:zlib算法(LZ77、LZ78、霍夫曼编码、滑动窗口、Rabin-Karp算法、哈希链、I/O缓冲区)
  16. is与==的恩怨、编码的详解
  17. excel拆分数据为多个工作表
  18. go语言基础(三)切片,map
  19. VS/C#中的ManagementClass类和获取硬件的信息的用法
  20. np.repeat() 用法

热门文章

  1. 示波器测量的波形一直抖动怎么办
  2. linux su -c 命令
  3. wow语音服务器卡蓝条,魔兽世界6.0卡蓝条解决方法 登陆界面卡主解决办法
  4. 如何将Processon中画好的图转为Visio可以打开并编辑的vsdx格式
  5. Android移动应用开发 多功能平台app
  6. win7 设定固定的ip地址
  7. 计算机硬盘中了病毒处理方式,电脑硬盘被病毒加密如何解决 电脑硬盘被病毒加密的解决方法...
  8. EFR32--如何在EFR32程序中修改UUID
  9. js 对json对象排序 字符串 拼音等排序
  10. 操作系统实验5 设备管理