LoginSignup
2
1

kaggleの機械学習コンペ:Child Mind Institute - Detect Sleep Statesに参加しました。

Posted at

先月kaggleのChild Mind Institute - Detect Sleep Statesという時系列系のコンペに参加しました。

1.png

このコンペは、子どもの睡眠データ(睡眠中の体の角度、感情指標(enmo))に基づいて、入眠(onset)と覚醒(wakeup)のタイミングを予測するコンペです。こういった予測によって、睡眠パターンをより深く理解し、睡眠障害の解決に役立てることが期待されています。

私の解法と学んだことについて共有します。

一般的な機械学習の予測コンペであり、流れは以下の通りです。
1.前処理
 →特徴エンジニアリング
 →交差検証(kfold)
2.トレーニング
3.アンサンブル
 →Spec2DCNN、DETR2DCNN、CenterNet、transformers.AutoModel、DebertaV3の5つモデルを組み合わせました。

交差検証とアンサンブル、あと一部の特徴エンジニアリング(時間帯を分ける処理とか)は基本的な手法を適用しました。(これらの処理を一通り全部行えば、Top15%くらいに入ります)

今回精度が出して、特に効果的だった特徴量エンジニアリングは、「体の角度の変化量」と「感情指標の変化量」です。体の角度と感情指標それぞれ現在値と5分前、25分前、50分前よりの変化量、合計6つの特徴量を追加しました。
これらの特徴量を追加したことで、精度が大幅に向上しました(0.71⇒0.74)。
そこまですごい手法ではないと思いますが、今回のコンペでの鍵となりました。(最終的に銅メダルを獲得しました)。

ちなみに、"Polars"というライブラリが多くの方が使っていることにも気づきました。
Polarsは大量の表形式データの処理に特化したライブラリで、Pandasより処理速度が格段に速いです。
今回のデータは1億件以上ありますので、Pandasだと時間内で処理完了するのが難しいと思います。(Polarsの書き方は少し特別ですが、慣れたら見やすいと感じました。)

コンペ:

参考になったコード:

Polars:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1