stacking模型融合_从Kaggle IG看机器学习的模型选择进阶

393dbce22bfff99be3516e5b346a3cf5.png

这是kaggle上又一次机器统计机器学习期末考试,1700人参加。

上次是桑坦德赛题,主要考了FE。这次有所区别主要考了三点,EDA,样本特征选择,模型选择,说实话,这次难多了。

考试题:https://www.kaggle.com/c/instant-gratification/overview

考官留言:

Silly column names abound, but the test set is a mystery. Careful how you pick and slice, or be left behind by history. 愚蠢的列名遍地都是, 但是测试集是个谜 当心你的选择和划分, 否则会被历史抛弃。

首先恭喜我的朋友大顺麦芽沉默铭仔的 你太美队2333,拿下亚军,本场考试第二名。袋鼠老哥拿下第二个solo金,本场考试压线分数。

这是一篇马后炮的学渣分享,因为在kaggle考场上被机器学习学霸碾压,学霸把自己的卷子投影到ppt上,学渣最后还是没有学霸的分数高,想了些歪门邪道,用学霸的答题方式,改了一版自己的答案,学霸盖住的题照葫芦画瓢(半监督方法),然后GG。

让我们继续回顾一下这次时长一个月考试发生了什么。到底谁是kaggle班级里的统计机器学习大学霸。 谁是深谙特征工程,特征选择,模型选择,模型融合的尖子生。

迷一样的数据集。

就像高考最后一道圆锥曲线题,缺好几条辅助线。

考试结束后,老师发了参考答案。这个题有3个考点。

先来总结一下,三个考点,分别对应着统计机器学习中很关键的3个步骤。

  1. 第一条是最简单的,如何通过eda和模型反馈发现magic特征。(考察 EDA、数据分析)分值80分
  2. 第二条是难一点的,如何通过magic特征,筛选样本和特征,进一步提升模型。(考察 样本、特征筛选) 分值10分
  3. 第三步是最难的,如何根据数据分布,选择最合适的模型。(考察 模型选择) 分值10分
  4. 第四步附加题。结果选择(考察同分布估计和运气以及实力) 附加题 5分

最后10分是压轴题。决定前40名一本线。最后5附加题分 决定top3发奖学金。

那么我们来复盘一下这次考试的3个考点,都是都是怎么分析的。

考点一,如何发现magic特征。

考点一的解题方法,大部分学生都会。

基本套路是,画图EDA,查看每个变量的直方图和分布特点。找出那些比较奇怪的地方。然后通过这步我们发现有一个特征,有512的数值,直方图吻合高斯分布。这时候程序员的数据敏感性就来了,什么512?凑了个整?全是离散值?那这有可能是一个类别特征。

第二步,查看LR或者GBDT的模型特征重要性反馈(weight和gain/split),magic特征稳稳的最重要。

好了定位了问题疑点。第一题80分拿到,此时可以突破85分了,使用好多模型都可以,只需要把类别特征one-hot或者使用神经网络的Embedding。

这里可以参考当时考场上的讨论,我发了一个one-weid thing和one trick的讨论。放出了第一条辅助线(也是最简单的)

One weird thing and One trick​www.kaggle.com

考试第一天过去了,大部分考生把基础分拿到手了,学霸开源了基础分的解题方法。

考点二,magic的进一步利用,完成样本选择和特征选择。

第二步其实难度上来了,首先,要想到512个糅杂的数据集不是一个简单的事。不过还是有办法的,那一天,我把这个的分析方法开源了,就是使用除了magic的特征预测magic,结果高达99.999的acc,那说明了,512个数据集来源于完全不同的分布,或者至少差异很明显。

这里我发了一个kernel证明了个。

Something Interesting about Magic​www.kaggle.com

Chris大学霸,利用了这个,提出了可以分512个LR来提交。效果显著。这时候大家已经发现可能是来自于sklearn的make classification了。

Private LB Probing - [0.950]​www.kaggle.com

这个小题下面还有第二个考点。使用方差进行特征选择,这也是出题人留了一手,没有把数据进行standard scale。Chris学霸发现512个分类数据集,每个特征方差都分别是集中在0.5和3的双峰高斯,然后卡了2这个阈值,效果提升很大,基本上可以断定,来自于sklearn的make classification制造的数据集,用了n_redunt(冗余特征数量) 和n_infromation(有效特征数量)来生产数据集。不过出题人还是首先留情了,如果数据集均值方差归一化了,问题还会难上一截。

学霸们纷纷表示,我把第二题道题做出来了,然后告诉了全班同学。然后大家一起上90分了。

考试休息期间,考场第一名的人调皮,把自己的答案给每个同学都发了一份。并发了一个能考很高分的解题秘籍(QDA二次判别分析)。

Quadratic Discriminant Analysis | Kaggle​www.kaggle.com

讲道理,要是学霸不告诉我们学渣有QDA这个玩意,按照我的我航研究生机器学习积累,还真是只知道LDA(线性判别分析)。

学霸告诉大家,QDA好用,就是因为正负样本的协方差矩阵不一样,(这块有点理论结算。后面会补充上来。推来推去能推出一个结论,QDA等价于GMM(N=2)并且协方差不相等,如果协方差相等,可以推出等同于LR)

考点三。压轴题,模型选择。

这个其实说难也难说不难也不难,主要是做到这里,很多学霸都累了,而且有些调皮的学霸,不停的告诉别人答案,让前期闷头做题的同学很受伤,很佛(说的就是我自己)

考卷最后一页,只有一个花里胡哨的高维空间的图了,六个超球,表面凹凸不平,n个坐标轴,表面充满了大量的细节。

但是我们都是三维生物…能看到这一步,还是靠大家的分析和推理。

努力的学霸们开始掏出计算器,枚举make classification的参数,最后发现,n_cluster =3的时候,跟我们考题最接近。

这是一条强力的辅助线。

Chris一张图解释了。(Chris学霸画的)

15e2ccec2c815eb06f2a78a5b82bf9d2.png

问题明了了,数据集由512个二分类数据集构成,magic标记了数据集代号,可以用数据集代号做样本选择,这几个数据集混杂着无效特征,可以用方差做选择,然后每个二分类里面,正负样本分别符合3峰高斯。用QDA不是最优解(不是单峰),GMM(三峰)才是。

然后用GMM就可以了,要弄好细节,比如初始点选则,predict概率计算等等。

3 Clusters Per Class - [0.975]​www.kaggle.com

最后总结一下,机器学习真有意思,kaggle考试官操碎了心,出了一道很棒的题。以后大家千万不说kaggle无脑一把梭,stacking就能上分了,不信我们下一次考试比试比试。(后面的细节图和分析慢慢补充)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值