【书签】stacking、blending
读懂stacking:模型融合Stacking详解/Stacking与Blending的区别
https://blog.csdn.net/u014114990/article/details/50819948
https://mlwave.com/kaggle-ensembling-guide/
The basic idea behind stacked generalization is to use a pool of base classifiers, then using another classifier to combine their predictions, with the aim of reducing the generalization error.
Let’s say you want to do 2-fold stacking:
- Split the train set in 2 parts: train_a and train_b
- Fit a first-stage model on train_a and create predictions for train_b
- Fit the same model on train_b and create predictions for train_a
- Finally fit the model on the entire train set and create predictions for the test set.
- Now train a second-stage stacker model on the probabilities from the first-stage model(s).
A stacker model gets more information on the problem space by using the first-stage predictions as features, than if it was trained in isolation.
It is usually desirable that the level 0 generalizers are of all “types”, and not just simple variations of one another (e.g., we want surface-fitters, Turing-machine builders, statistical extrapolators, etc., etc.). In this way all possible ways of examining the learning set and trying to extrapolate from it are being exploited. This is part of what is meant by saying that the level 0 generalizers should “span the space”.
[…] stacked generalization is a means of non-linearly combining generalizers to make a new generalizer, to try to optimally integrate what each of the original generalizers has to say about the learning set. The more each generalizer has to say (which isn’t duplicated in what the other generalizer’s have to say), the better the resultant stacked generalization. Wolpert (1992) Stacked Generalization
从以上文字我们可以知道,stacking思想的精髓是,从训练数据的多个不同侧面对数据的分布情况进行了解,从而的全面地学习到数据的分布规律,然后用上一层学习器学习到的多个侧面知识,作为下一层学习的对象进一步学习,其实是为了汇总学习到的信息,从而学习得更好。
数据比赛大杀器----模型融合(stacking&blending)
stacking涉及到类似交叉验证的步骤,关于交叉验证:
1.理解交叉验证(cross validation,cv):https://blog.csdn.net/liuweiyuxiang/article/details/78489867
交叉验证实际上就是对同一批数据进行多次利用,但每次这批数据的训练集、测试集的划分方式不同,算法在各个数据集划分上都跑一遍,各个结果取平均值来衡量该算法的准确性。
交叉验证的本质是多次实验,然后取平均数作为最终结果。
交叉验证的用途:
1.1可用于算法调参:同一个算法,如KNN算法,为了确定参数K的最佳取值,可以在K=3时,进行交叉验证,得出K=3时的平均准确度,
然后K=4时,交叉验证,得出K=4时的平均准确度,如此类推。
最后比较K取各个值时的平均准确度来确定K取哪个值时准确度最好。
1.2 交叉验证用于比较算法(模型选择):在各个算法的参数已经确定的情况下,(例如KNN的k确定为5,逻辑回归算法的参数也已经确定),让KNN和逻辑回归都在同一个数据集上
做一次交叉验证,得出各自的准确度,即可决定KNN和LR哪个好。
验证集(validation set)与训练集相似,但它不是必须的,做交叉验证的时候才会用到验证集。一般情况下,只需要把整个数据集分为training set(假设有8000行数据)、testing set(假设有2000行),training set用于算法训练,是的算法学习到摸清楚数据集的整体分布规律,然后用训练后的算法对testing set做预测,计算准确率。但这种只分为training set、testing set的做法,容易导致训练得到算法的方差(variance)较大,算法表现不稳定,于是可把testing set保持不动,把原来的training set进一步细分,例如划分成为5份【sub set 1、sub set 2、sub set 3,...sub set 5】每份1600行数据,其中4份作为training set,另一份(sub set 1)作为验证集(validation set),然后让算法在那4份的training set上进行训练学习,然后在validation set上预测结果,得出这种划分下的算法准确性。还可以将sub set 2作为验证集,sub set 1、3、4、5合在一起作为training set,训练之后sub set2上进行预测,计算准确率。如此进行5次,最后把各次的准确率求均值,作为算法的准确性,这个过程称为交叉验证。验证之后,还可以进一步在testing set(2000行)上进行预测,即作为算法准确性。由此我们可以看出validation set作用与原来的testing set其实是一样的。
2.网格搜索:就是调参时穷举搜索,例如参数a有两个取值可选,b有三种取值可选,则一共有6中参数取值组合,逐一试过去,最终找到最佳的参数组合。
https://www.cnblogs.com/ysugyl/p/8711205.html
https://blog.csdn.net/sinat_32547403/article/details/73008127
【书签】stacking、blending的更多相关文章
- Dream team: Stacking for combining classifiers梦之队:组合分类器
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- 模型融合——stacking原理与实现
一般提升模型效果从两个大的方面入手 数据层面:数据增强.特征工程等 模型层面:调参,模型融合 模型融合:通过融合多个不同的模型,可能提升机器学习的性能.这一方法在各种机器学习比赛中广泛应用, 也是在比 ...
- Liberty Mutual Property Inspection, Winner's Interview: Qingchen Wang
Liberty Mutual Property Inspection, Winner's Interview: Qingchen Wang The hugely popular Liberty Mut ...
- 【干货】Kaggle 数据挖掘比赛经验分享(mark 专业的数据建模过程)
简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛,相继获得了 C ...
- Kaggle 数据挖掘比赛经验分享(转)
原作者:陈成龙 简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比 ...
- Kaggle 数据挖掘比赛经验分享
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 腾讯广告算法大赛 作者 | 陈成龙 Kaggle 于 2010 年创立,专注数据科学,机器学 ...
- 深度网络中的Tricks
数据增强(Data augmentation) 预处理(Pre-processing) 初始化(Initializations) 训练中的Tricks 激活函数(Activation function ...
- 谈谈模型融合之一 —— 集成学习与 AdaBoost
前言 前面的文章中介绍了决策树以及其它一些算法,但是,会发现,有时候使用使用这些算法并不能达到特别好的效果.于是乎就有了集成学习(Ensemble Learning),通过构建多个学习器一起结合来完成 ...
- 模型融合之blending和stacking
1. blending 需要得到各个模型结果集的权重,然后再线性组合. """Kaggle competition: Predicting a Biological Re ...
随机推荐
- postman(介绍)
Postman 界面介绍 一. 安装后首次打开 postman,会提示你是否需要登录,登录的话可以云端保存你的收藏及历史记录,不登陆不影响使用. 二. 进入后就是如下图所示的界面了.看到这么多按钮 ...
- 使用kubeadm部署k8s集群[v1.18.0]
使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...
- Springboot邮件发送思路分析
毕业设计里需要邮件发送,所以学习,总的来讲,我考虑以下几点, 代码量少,代码简单.配置少,一看就懂,使用 JavaMail 太麻烦了. 异步执行,添加员工之后会发送入职邮件, 多线程处理,设计里有一个 ...
- 谈谈Spring bean的生命周期(一)
简介 本片文章主要讲Spring IOC容器中 bean 的生命周期 Spring bean 生命周期 Spring 中bean的声明周期 可以分为如下4个阶段: 实例化阶段--Instantiati ...
- Day_11【集合】扩展案例1_遍历打印学生信息,获取学生成绩的最高分,获取成绩最高的学员,获取学生成绩的平均值,获取不及格的学员数量
分析以下需求,并用代码实现: 1.按照以下描述完成类的定义 学生类 属性: 姓名name 年龄age 成绩score 行为: 吃饭eat() study(String content)(content ...
- poi excel自动转换成javabean 支持引用类型属性二级转换
最近项目需要使用excel导入功能,导入学生的时候需要指定所在班级,使用excel一次性导入! 将以前的代码改改支持属性内引用类的转换. 测试对象为User对象,javabean结构: private ...
- 2018-08-27 jq筛选选择器
筛选选择器:为了辅助选择器更简便.快速的找到元素: 1.过滤 eq(n) -> 第n个元素(从零开始) $('h1').eq(2) // 第三个h1 first() -> 第一个元素 la ...
- mysql和oracle 关于多表join的区别
http://stackoverflow.com/questions/10953143/join-performance-oracle-vs-mysql 翻译自上面的链接. Given a query ...
- sound of the genuine
“There is something in every one of you that waits and listens for the sound of the genuine in yours ...
- JS的函数和对象一
1.递归 在函数的内部调用自身,默认是一个无限循环. 2.匿名函数 没有名称的函数 function(){ } (1)创建函数 函数声明 function fn1(){ } 函数表达式 va ...