知乎上砍手豪关于kaggle的观点(转载)

原文链接: www.baidu.com

知乎上的砍手豪的kaggle主页是:

https://www.kaggle.com/h4211819/competitions

此人以数据挖掘为主,下面是他在知乎上写的我发现的比较有用的一些观点.

 

比赛的一开始就有人教大家怎么probing leaderboard,如果用那些被探测到的数据,
自然就很容易在LB混到好名次,所以比赛完了自然要掉名次。
其次跟19%,81%没啥关系,照说本来就该用local CV的,去过拟合public board的只能说根本还没入门机器学习。
GBDT对参数其实没那么敏感,对异常值敏感

就说我参赛的经历吧,我就发现X236=1的时候全是大数,

然而总共也就只有两个样本,
天知道是outlier还是有价值的pattern,
像随机森林和线性模型基本都会忽略这种联系,
但是gbdt这种对outlier敏感的会在某些random seed的情况下体现出这个联系的影响。

用xgboost这类Tree Based model啦
题主也是在做kaggle的俄罗斯房地产题吧
按照我做这个题的经验,任何企图填充NaN和outlier的行为都会使xgboost的score下降...

data>model>feature engineering>ensemble(这个不一定对,因为有些数据集就是存在两种相反的规律,就是需要不同的模型混合)


提到了嫁接学习:
https://github.com/plantsgo/ijcai-2018

下面这个链接提到了把数据重新排布下,提高四个万分位
https://zhuanlan.zhihu.com/p/36580283


愿意分享代码的其实主要是排名2%~3%的Olivier,andy harless这样的选手。


提到了对重复样本的检测
https://zhuanlan.zhihu.com/p/50203168


kaggle的比赛真的靠ensemble吗?
所有人谈论kaggle的时候都不区分讨论tabular比赛和cvnlp 这种nn类比赛,
我觉得nn类比赛确实连简单的seed average都可以得到不错的分数提升,
但是在tabular比赛里,xgb和lgb是非常强大稳定的模型,ensemble的提升
在我看来其实是非常有限的。


我个人观点,除了匿名数据赛外,一个比赛获胜的重要性是:
好的baseline>业务理解(特征工程+数据清理等等)>模型融合,
xgb/lgb作为tabular比赛强大而稳定的模型,想像nn那样多跑几个多样性上分,
可能收益还不如细微的抖动。
ensemble主要用于将一个互不认识的大团队成员短期快速整合的手段,
事实上上面很多队伍还只是简单线性叠加而已,也不会比ensemble差。
16年及以前,kaggle几MB甚至几百kb的小数据匿名赛比例较大,
有靠这个刷到GM的,所以那时候给人一种kaggle要靠大量模型堆叠的感觉。


大佬蛙哥回复表示:
在训练集和测试机分布不完全一致的时候,pseudo-labelling是杀手锏级别方法。
https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge/discussion/52557#300898

(这个方法我试了下,毛病就是非常容易爆内存,本地需要有较好的设备才容易进行)

你可能感兴趣的:(Kaggle-数据挖掘与技巧)