Blending和Stacking的流程是什么
这篇文章主要介绍“Blending和Stacking的流程是什么”,在日常操作中,相信很多人在Blending和Stacking的流程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Blending和Stacking的流程是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联公司是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都网站设计、成都做网站、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
1. Blending
1.1 Blending 流程
Blending相较于Stacking来说要简单一些,其流程大致分为以下几步:
将数据划分为训练集和测试集(test_set),其中训练集需要再次划分为训练集(train_set)和验证集(val_set); 创建第一层的多个模型,这些模型可以使同质的也可以是异质的; 使用train_set训练步骤2中的多个模型,然后用训练好的模型预测val_set和test_set得到val_predict, test_predict1; 创建第二层的模型,使用val_predict作为训练集训练第二层的模型; 使用第二层训练好的模型对第二层测试集test_predict1进行预测,该结果为整个测试集的结果 1.2 Blending 图解
2. Stacking
2.1 Stacking 流程
Stacking流程比较复杂因为涉及到交叉验证的过程,其流程与Blending类似,具体如下:
将数据划分为训练集和测试集(test_set),对训练集进行划分为K个大小相似的集合,取其中一份作为验证集val_set,其余的为训练集train_set; 创建第一层的多个模型,这些模型可以使同质的也可以是异质的; 对于每一个模型来说,train_set和val_set是不一样的,如2.2图所示;然后利用各自的train_set训练各自的模型,训练好的模型对各自的val_set和test_set进行预测,得到val_predict和test_predict; 创建第二层的模型,将每个模型对应的val_predict拼接起来作为第二层的训练集,将所有模型的test_predict取平均值作为第二层的测试集;用训练好的第二层模型对第二层的测试集进行预测,得到的结果即为整个测试集的结果
2.2 Stacking 图解
stacking 网上有两种解释,一种是单个模型进行5次交叉验证得到一个结果,然后对每个模型都进行相同的操作,此时训练集的维度为(#样本数目 x #模型数目);另一种是每个模型对数据的每一折输出一个结果,然后把每一折的结果拼接起来,此时的训练集维度(#样本数目 x 1)。
3. Blending与Stacking对比
Blending的优点在于:
1.比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)
2.避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
3.在团队建模过程中,不需要给队友分享自己的随机种子
而缺点在于:
1.使用了很少的数据(是划分hold-out作为测试集,并非cv)
2.blender可能会过拟合(其实大概率是第一点导致的)
3.stacking使用多次的CV会比较稳健
到此,关于“Blending和Stacking的流程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
分享标题:Blending和Stacking的流程是什么
文章转载:http://pwwzsj.com/article/jjihoe.html