Stacked Regression的详细步骤和使用注意事项
声明:这篇博文是我基于一篇网络文章翻译的,并结合了自己应用中的一些心得,如果有侵权,请联系本人删除。
最近做推荐的时候,开始接触到Stacking方法,在周志华老师的西瓜书中,Stacking方法是在Bagging,Bosting方法后的模型集成方法,和投票法,简单平均法,加权平均法等方法在同一个讨论框架中。在网上查资料,也有学者认为Stacking方法是和Bagging,Bosting方法在同一个讨论框架中,我个人更加赞成周志华老师的论断,因为Stacking必须在模型差异较大,最好是不同模型,各有侧重的情况下,可能能够得到更好的集成效果,而Bagging和Bosting通常都是用的同一类模型,只是在训练样本上有所不同。
关于Stacking的学习资料有很多,下面罗列我找到的一些资料:
1. 首先要看的是Breiman的stacked regression,这是Stacking方法的提出论文;
2. Alexander K. Seewald等对stacked regression进行了改进,《How to Make Stacking Better and Faster While Also Taking Care of an Unknown Weakness》;
3. 如果对weka比较熟悉,Weka中实现了Stacking和StackingC,但是Weka默认的metaClassifier是ZeroR,不修改的话肯定试不出效果,要改成Linear Regression模型,而且要用Ridge regression选项,将Ridge的参数保持默认的值(1.0e-8)就可以了。
下面是我根据一篇博文翻译而来,这篇文章对Stacking方法的具体实现进行了详细阐述,还有代码实现,感谢原作者提供的很好的学习资料,原文地址:
http://blog.kaggle.com/2016/12/27/a-kagglers-guide-to-model-stacking-in-practice/
K-近邻(基础模型1)
- L2-正则化L2-损失支撑向量机分类(对偶问题)
- L2-正则化L2-损失支撑向量机分类(原始问题)
- L2-正则化L1-损失支撑向量机分类(对偶问题)
- support vector classification by Crammer and Singer
- L1-正则化L2-损失支撑向量机分类
同样地,用交叉验证和网格搜索方法,我们找到了最好的超参数是type=4以及cost=100.又一次,我们用这些参数在所有训练数据上训练模型,并在
- 将训练数据分为5份,叫做test fold

- 定义一个数据集叫做train_meta,和训练数据集有相同的原始Id和fold id,加上两个空的列M1和M2.同样地,生成一个测试集叫做test_meta,和测试集合有相同的原始Id,加上两列,M1和M2.

- 对于每一个交叉验证集
3.2 对于每一个Base模型
- 用所有的训练数据训练Base模型,并对测试数据进行预测。将这些预测值保存在test_meta中。
- 训练一个新的模型,S(也就是stacking 模型),用M1和M2当作特征,当然,也可以原来数据中的其他特征也用上。
- 用stacked model S对test_meta做预测。

Stacked Regression的详细步骤和使用注意事项的更多相关文章
- unity导出工程导入到iOS原生工程中详细步骤
一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录
svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...
- OSG入门即osgEarth建立一个地球的详细步骤
OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...
- VS2012+Win7网站发布详细步骤
VS2012+Win7网站发布详细步骤 本机环境: 本文分三个部分介绍Web项目发布的常规方法,大神级别可以略过,主要是为了方便一些初学者. 第一部分:VS2012把项目发布到文件系统. 第二部分:I ...
- 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)
用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...
- iOS开发之 xcode6 APP 打包提交审核详细步骤
一. 在xcode6.1和ios10.10.1环境下实现app发布 http://blog.csdn.net/mad1989/article/details/8167529 http://jingya ...
- 使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程
使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程 先列出来总体启动流程: (1)启动zookeeper集群(hadoop01.hadoop02和hadoop03这3台机 ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
随机推荐
- Babel 入门指南
Babel 入门指南 ⚠️ 注意: Babel 可以与很多构建工具(如 Browserify.Grunt.Gulp 等)进行集成.由于本教程选择 Webpack ,所以只讲解与 Webpack 的集 ...
- 如何将HLS延时缩短至4秒,HLS+技术详解
在直播应用中,RTMP 和 HLS 是两种较为成熟且广泛应用的流媒体协议,基本上可以覆盖所有客户端.RTMP 是互联网 TCP/IP 五层体系结构中应用层的协议,主要优势就是实时性高,基本可将直播延时 ...
- IAM
IAM 与 权限访问控制机制 IAM , Identity and Access Management 基本概念 ARN, Amazon Resource Name : 在 AWS 里, 创建的任何资 ...
- Thinkphp模板的使用
模板标签 内置标签:include,import,volist,foreach,for,switch,compare,present,empty,defined,if/else 输出php代码:PHP ...
- 【知识整理】这可能是最好的RxJava 2.x 入门教程(三)
这可能是最好的RxJava 2.x入门教程系列专栏 文章链接: 这可能是最好的RxJava 2.x 入门教程(一) 这可能是最好的RxJava 2.x 入门教程(二) GitHub 代码同步更新:ht ...
- panic和recover的使用规则
转自个人博客 chinazt.cc 在上一节中,我们介绍了defer的使用. 这一节中,我们温习一下panic和recover的使用规则. 在golang当中不存在tye ... catch 异常处理 ...
- Hibernate基础知识总结
Hibernate是JDBC的轻量级的对象封装(encapsulation),它是一个独立的对象持久persistence层框架. hibernate要做的事,就是让对象投影到关系数据库中,然后实施化 ...
- tomcat启动不了,内存溢出
今天下午不知道做了什么,然后tomcat启动了10分钟还启动不了.然后看控制台报错信息,说是内存溢出.然后就各种百度,终于解决了.在这里记录提示自己,避免这种问题再次出现还要浪费时间去找方法解决. 最 ...
- MySQL(四)--练习题
 2.1 编写一条 SQL 语句,从 Product(商品)表中选取出“登记日期(regist_date)在 2009 年 4 月 28 日之后”的商品.查询结果要包含 product_name 和 ...
- (转载)Sybase:bcp命令参考
参考文档: http://blog.csdn.net/wwp1026/article/details/6900569