セーターの備忘録

大学編入やIT関連の内容を記していく予定です

SIGNATE「AI創薬:薬物動態予測」コンペで17位でした

はじめに

SIGNATEで行われた「AI創薬:薬物動態予測」コンペ(以下,創薬コンペ)に参加し,17位で上位3%に入る結果となりました.

signate.jp

本記事では,コンペで行った手法やその振り返りをまとめます.
ただし,コンペには参加規約*1があります.今回,自分は入賞者ではないので,非入賞者としての参加規約に反しない範囲でまとめたいと思います.

創薬コンペ概要

本コンペでは,新薬開発で重要な因子の一つである化合物の薬物動態パラメータを予測しました.
用いるデータとしては,様々な化合物の情報とそのスクリーニング試験における実験データが与えられました.ただ,どの特徴量も説明は非公開となっており,ドメインを生かした予測は難しくなっていました.

評価方法は決定係数「R2」でした.
R2は精度が高いほど大きな値となる評価指標です.
f:id:resweater:20191020140223p:plain

試した手法

メインモデル

f:id:resweater:20191021140058p:plain
コンペでは主に図に示したような流れで得た結果をサブミットました.
特にData Cleaningはするかしないかで大きな差が出ました.これについては以下のページを参考にさせてもらいながら処理を行いました.
naotaka1128.hatenadiary.jp

モデルの構築に当たっては,精度が出そうなモデルを中心に片っ端から手法を試す方法を取りました.
様々なモデルを試す中で,結果の傾向を見ながら複数のモデルの結果でStackingを行い,その結果をサブミットしました.

その他のあれこれ

上記以外の方法として,以下のような方法を試してみました.

データをカテゴリカルデータと数値データで分け,それぞれにあった手法で学習して統合
→ あまり精度が出なかったのと,並行してチームメンバーがやっていた方法が上手くいったためやめました.もう少し工夫してやってみたかった方法でした.

寄与度を基にデータを分けて学習して統合
→ 寄与度に一定の傾向が見られたため,その辺りを工夫すれば上手くいくかなと思い試しましたが,あまり良い結果は得られませんでした.

結果

f:id:resweater:20191020143840p:plain

Public LBからPrivate LBで若干精度は上がりましたが,順位はほぼ変わらず17位という結果になりました.

おわりに

最終的な参加チームは729チームだったので,かなり上位の方に食い込むことができました.ただ,コンペ終了数日前は9位まで上がり,目標は10位以内だったので惜しい結果となりました.
今回得た前処理などの手法を生かしてまた別のコンペにも参加していきたいと思います.