kaggle | fMRI数据竞赛Top10方案(1-5)

一句话概况一下这个比赛:用Neuroimaging的数据预测包括年龄在内的5个变量。

详情见之前推送~

懒麻蛇,公众号:懒麻蛇FYI | kaggle 基于fMRI的prediction competition(第一名 $12000)

该比赛于6月底结束,忙里偷闲总结一下Top10的solution,受益颇多,希望对各位也有所启发。二维码是kaggle的传送门,感兴趣点开可以看原帖。

a438062628040a9bfbf3364cbf6cb1b0.gif

Private Leaderboard 排名

fa63e3f3e4ada264d99c2b140d4b8c53.png

191fb0336361770d0f2239ecdc3f779a.gif

1

1st 

fd62bd337ed0114635178b256b9570ec.png

  • 没有用Deep learning!所有流程用12核64GB的Ubuntu运行,没有用GPU。取而代之的是对3D fMRI data做了各种summary statstics并做PCA。通过progress可以看到PCA+Dictionary-learning大大提升了模型的表现。

    We used Incremental PCA on fMRI data with n_components 200, batch-size 200. Channels were split into groups by 10 and flattened inside them (6 groups in total). As a result, we got 1200 PCA features. Dictionary-learning (DL) params: n-components 100, batch-size 100, and n-iters 10 (the same scheme with channels splitting).

  • 对于test的特征加入了bias使之更像training的特征分布。其实逻辑很简单,如果testing和training的数据分布更接近的话,用training set训练的模型就可能在testing上表现得更好。

    We used minimization of Kolmogorov-Smirnov test’s statistic between train[col] and test[col]+ b.we used minimization of Kolmogorov-Smirnov test’s statistic between train[col] and test[col]+ b.

    8b7cc1471e1645d100349265b90ac70a.png

  • 作者已将全部code共享在github

d6c4c5fe59569601ab3688e8b82bae77.png

59e52ebab1a10ec8e18ab0fd2dffdd4b.gif

2

2nd 

c9b146cbefdb59b0520e16d3905f5785.png

NEAT!!!!对CSV的数据做了stacking,对3D fMRI的数据使用了Deep learning,用了强大的XGBoost做了ensembling,最后还有对权重的优化。

3D ResNet18 is the best CNN here for me. Comparing to that, ResNet50, ResNext50, ResNext101 doesn’t work well.

Splitting 3D fMRI into 3~6 pieces gave me boost, but 8 pieces are useless.

25901ea636f1aa0dd408bc001ff2e625.png

c7dc3b378794150dc6be0ee85a1a1427.gif

3

3rd 

de0f92a5521dbae58cec292eef531d4e.png

这么复杂的方案实在是太烧脑了,完全是一个BlackBox。为了搞定如此复杂的模型,作者使用了pytorch-lightning+hydra+Weights & Biases。这三个工具值得一看。

I used pytorch-lightning to lap training and evaluation code and hydra to manage parameters. I used Weights & Biases to manage experiments and GCS to save results. Weights & Biases is better for me than the others (tensorboard, mlflow, etc …)


9cf12de2bb6a5b0b2cc9844f66acc2ac.png

341da17b37770d020d83c7c46577b78b.png

Weights & Biases 

54aa6075fc9218e1aa6ee94279cbf728.png

16dc1d17900299c7658c6867576c2209.png

275d85835b51afd0c8f6ebc520f88243.gif

4

4th Neuroimager's solution

1. Neuroimager的方案!

2. 自己使用Kmeans和Ward计算了Parcellation

3. 对ICA component map使用自制的parcellation计算了connectivity,即把每一个component看作一个时间点,并使用了不同的计算方法,包括:correlation/covariance/partial correlation/tangent/precision。对生成的特征用SVR+Ridge对SVR,Ridge, Lasso, Elastic Net模型做了stacking。

7e6d9dcab1371f0b1148d1b773a0cc90.png

cd6a9b838fb1a37dbea7d7972eab1361.gif

5

5th

38a62bb037ac7529212ae0001b7ed571.png

只给了3D fMRI部分的solution,但是该比赛的关键就在于3D fMRI的使用。使用了2种不同的精度float16和32,然后做了stacking。float16虽然快但是用float32的模型更准确。3D 数据从(50,63,53)resize到(75,94,79)提升了3DCNN的准确度。

btw, 右上的图是日式幽默吗。。。。

24bfeca975ce43b60a537e5607f81d76.png

下个推送将总结6-10的方案,会有bonus的内容

Stay Tuned25b6824d34253ef80e61e5586094ff5d.gif

966c07d6b6edea91a370df01df114998.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值