杂乱!!
stacking的理解:
- 多个数据的和在一起——>预测新的内容
- 还有一种结合策略是使用另外一个机器学习算法来将个体机器学习器的结果结合在一起,这个方法就是Stacking。
- 算法示意:
(思路:不断的train test 与predict进行比较)
如何使得后期的模型拟合更好:
5. 次级模型尽量选择简单的线性模型
6. 利用K折交叉验证
个人理解:
运用同一个组,分别取组内其余数据(n-1)作为原始值,一组数据作为predict的值,(进行n次)——》 最后得到n个predict——》取average——》做多次,运用最初说到的整合来进行推测。
融合函数:代码示例
voting投票机制:
硬投票:
对多个模型直接进行投票,不区分模型结果的相对重要度,最终投票数最多的类为最终被预测的类
软投票:
和硬投票原理相同,增加了设置权重的功能,可以为不同模型设置不同权重,进而区别模型不同的重要度
在末尾数据上看到了四种不同的答案:
XGBBoosting
random forest
SVM
Ensemble
没有见过SVM&Ensemble
SVM:
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中
详细学习链接
link
Ensemble:
Ensemble方法是监督式学习的一种,训练完成之后就可以看成是单独的一个”假设”(或模型),只是该”假设”不一定是在原”假设”空间里的。
我个人觉得不错的链接学习:
link
Blending:
(对于学习链接上的复制,觉得很好的)
Blending,其实和Stacking是一种类似的多层模型融合的形式
其主要思路是把原始的训练集先分成两部分,比如70%的数据作为新的训练集,剩下30%的数据作为测试集。
在第一层,我们在这70%的数据上训练多个模型,然后去预测那30%数据的label,同时也预测test集的label。
在第二层,我们就直接用这30%数据在第一层预测的结果做为新特征继续训练,然后用test集第一层预测的label做特征,用第二层训练的模型做进一步预测
其优点在于:
1.比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)
2.避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
缺点在于:
1.使用了很少的数据(第二阶段的blender只使用training set10%的量)
2.blender可能会过拟合
3.stacking使用多次的交叉验证会比较稳健 ‘’’
加权融合的代码:
嗷,突然发现现在已经是最后一次打卡了
· 感觉这样的大强度的关于数据类型的代码我还是真的没有接触过,在很多的信息点上我都只是能学习一下比较basic的点,笔记也会比较着重知识点。
· 我也许先得把自己的基础代码搞好之后再回来看这次的整个模型系统,亲手实操,才有更多自己的看法
· 嗷,虽然对我来说还是蛮难的,尤其有时候偷看别人的学习笔记上,都发现大家都有类似的经历也有自己独特的感受,感觉自己有很多需要学习的,我也偷偷码下这次的笔记,(希望datawhale不要删原始记录!)
· (这次的4次打卡,还是让我对于数据之类的产生大量的兴趣,学校的专业太过于文科,还是喜欢这样逻辑性强的东西!)
· 嗷,谢谢datawhale这次学习的帮助!