kaggle | fMRI数据竞赛Top10方案(6-10)

接上文~~

6

6th

4838ef15ea2e67458e37e54ce5f28e94.png

对3D fMRI数据进行了autoencoder和PCA的降维操作,把每个3D数据压缩成12048个特征,加入其他的组织者提供特征FC和structual的数据。作者对整个流程的描述都比较简单,比如target binning,site classifier怎么做的,blending时meta-model用的是什么都没有提及。

autoencoder?

a862cf1141cfcd2771abc504908f27dd.png

自动编码器是一种数据的压缩算法,其中数据的压缩和解压缩函数是1)数据相关的,2)有损的,3)从样本中自动学习的。在大部分提到自动编码器的场合,压缩和解压缩的函数是通过神经网络实现的。目前自编码器的应用主要有两个方面,第一是数据去噪,第二是为进行可视化而降维。配合适当的维度和稀疏约束,自编码器可以学习到比PCA等技术更有意思的数据投影

该方案的亮点便是使用了3d-cnn的autoencoder,见以下Github

https://github.com/gkiar/3d-cnn-ae/

1f83ec633d0e9048521c5a81d4a80223.png

一个对stat map的自编码的例子:

284a02bbf0d7688f3f81ab8ab892ad39.png

2578990a38cee3172581ecd153854020.png

Siamese Network?

Siamese是暹罗的意思,为什么Siamese Neural Network可以称为孪生神经网络,这种网络有什么用。推荐以下知乎文章介绍Siamese Network,有奇怪的知识~~~

623b1c75984cbb150540e9dabf2e4053.png

5b6282eae69792399ed94b115d24633d.gif

7

7th

使用了3D CNN并且用训练集median的值对预测结果进行调整,有不错的效果。

作者说:resnet10 and started to boost from median predictions

什么意思:

medians = [50.42774666, 51.84730591, 60.05253491, 47.81120495, 52.57203216]
out = out + Variable(torch.Tensor(medians)).cuda()

该作者在比赛刚开始的时候便贡献了一个高质量的notebook,使用了Rapids中GPU版的SVM,仅用了tablular的数据(没有加入3D fMRI的数据)就达到了public和priviate leaderboard的0.160,并成为很多人的baseline model。

Rapids是Nvidia孵化的一个项目,GPU版的SVM比CPU的快5倍。

68a8b8c47cfc8b8eb634a908ae65ff08.png

749b4ea1d52a8ee28c02b27b69496fc9.png

Notebook里还不忘嘲讽一下sklearn。。。。

4a0ff2e8a0f28a0dba911deb29267150.png

fc77dca92a34fb015bfcb9832272b440.gif

8

8th

67978588785a653924ed9091d7339f2c.png

同样使用了RestNet对3D fMRI数据进行降维,后续的操作和第六名极其相似(!),作者分享了NN的结构,代码见原帖。

参数优化用了一个懒人包:Optuna (不仅仅是简单的gridsearch)。

50332ec954c7d3eab9db37be0fc20421.png

使用optuna进行优化,同时它还支持distributed optimization。

6397a78e41d5bbd28f253173ab452154.png

005dabd04d74bfa9f39cb0aeacce3937.png

关于optuna推荐阅读:

  • Project’s website: https://optuna.org/

  • Project’s GitHub repository: https://github.com/pfnet/optuna

  • Example Notebooks: https://github.com/PiotrekGa/optuna_article

  • How to make your model awesome with Optuna:https://towardsdatascience.com/how-to-make-your-model-awesome-with-optuna-b56d490368af


30c97056cc1ae7d41ff1d4dbcfc7425a.gif

9

9th

对于3D fMRI数据,每个被试有53个IC map,计算IC maps之间的相关是一个有效的特征工程的方法。处理完3D fMRI的数据,剩下的步骤很直接,用了24个baseline model:

  • 6x Ridge

  • 1x Lasso

  • 3x RAPIDS SVR

  • 2x XGboost

  • 2x KNN

  • 9x MLP

  • 1x 2D CNN

进行stacking,stacking用的model 为:

  • BaggingRegressor( base_estimator=Ridge )

  • KNeighborsRegressor

  • NuSVR

  • RandomForestRegressor

c8a9a6f80da9d5a1885084a06069e162.png

9e6556270c6d8b9e26553c62d8cd718f.gif

10

10th

c359ffe755c48f969c4c576c68b07eaa.png

思路比较清晰。首先对于3D fMRI数据进行了降维。一方面和原始3D数据使用deep learning的模型进行预测;另一方面提取3D map中的特征,和其他已有的特征loading(structural数据)和FNC进行特征选择。最后使用Ridge作为meta的模型进行预测。可以看到CV的分数达到了0.512,没有考虑site特征可能是public和private分数下降的原因。本次比赛中,testing的数据中包含了两个site的数据,而training的数据只包括了一个site,也就是说用这个模型有overfitting site 1。

cfdec2847415459114b8cfef97330aaf.png

28cfd973d9d948c5d6d1281d5bccf468.gif

~

Bonus

第二名在说

234c85666abea485f1213576b2236c75.png

第四名在说

d221410f893d153492e53e726eb65558.png

但是Top10中有一部分方案都提到,他们借鉴一位在腾讯工作的kaggle大神(seotao)的baseline 模型。Github有共享代码和pretained的模型。Tencent MedicalNet和MONAI都是基于医疗影像数据的3D-CNN模型构架值得关注。

98e389c4c5af4e4feab7848b43f06c03.png

去年3月seotao的kaggle经验分享,怎么只用了半年拿到了kaggle的Grandmaster。

传送门

46077bfcc843459dcd65fc1299c67def.png

在随后时间里他再次提升了自己的成绩

421156a17866faa66dd9cb8887c63a5b.png

93b2ce6d1e8e4e55b6344cc3e038ba19.gif

Recap

  • Autoencoder

  • Siamese Network

  • RAPIDS

  • Optuna

  • Tencent MedicalNet和MONAI

下次分享如何使用kaggle

Stay tuned

d63f0fcdba4b368a9a2bcef6e5847d75.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值