忍者ブログ
統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。

【Kaggle挑戦記】Mechanisms of Action (MoA) Prediction:データの取得と構造の確認

手書き文字認識の「Digit Recognizer」などを経て、今回は生物・創薬系のデータを扱った「Mechanisms of Action (MoA) Prediction」に挑戦しました。今回はコンペのアーカイブデータを活用し、Late Submissionによる順位確認を目指します。まずは特徴量抽出などの複雑な加工は一切行わず、生のデータをそのままLightGBMに投入する「ベースライン構築」に向けて、データの入手手順と構造を整理します。

0. このコンペティションの概要

「Mechanisms of Action (MoA) Prediction」は、新薬の候補化合物が人間の細胞(遺伝子や細胞株)に与える影響を分析し、その薬が「どのような効き目(作用機序=MoA)」を持っているかを予測するコンペティションです。データの主な仕様は以下の通りです。

  • データ規模: 訓練用の入力データが約2.4万行、テストデータが約4,000行弱。横方向には800を超える大量の特徴量カラムが並ぶ大規模な表形式データです。
  • 入力データ: 細胞の写真などの画像ではなく、100%数値化されたデータです。約770種類の遺伝子発現変化量(g-特徴量)と、100種類の細胞生存率(c-特徴量)、そして実験条件(時間や投与量)で構成されています。
  • タスク: 用意された206種類に及ぶ「効き目のチェックリスト」に対して、それぞれの効き目が「ある(1)」か「ない(0)」かをすべて同時に予測する「マルチラベル二値分類」です。評価指標は「Log Loss(交差エントロピー誤差)」の平均値が採用されています。

終了済みのコンペですが、テストデータ(test_features.csv)に対する予測ファイルを提出する「Late Submission」に対応しています。これにより、当時のリーダーボード(順位表)のどの位置に自分が食い込めていたかのスコアと暫定順位を正確に確認し、腕試しをすることができます。

1. データの入手

データの取得手順は以下の通りです。

  • Kaggleにログインします。
  • 検索窓で「Mechanisms of Action (MoA) Prediction」または「Kaggle MoA」を検索します。
  • コンペティションのページから「Data」タブを選択します。
  • 右上の「Download All」ボタンから、ZIP形式で一括ダウンロードします。
  • ダウンロードしたZIPファイルを適当なディレクトリで展開します。

展開すると、ディレクトリ内に役割の異なる6つのCSVファイルが生成されます。

2. 主要なCSVファイルの解説

展開して得られたCSVファイルの中から、初期のLightGBMベースライン構築において直接使用する重要なファイルを整理しました。カラム構造とそれぞれの役割は以下の通りです。

ファイル名 / カラム名解説
train_features.csv 学習用の入力データ(約2.4万行)。モデルの「入力(X)」となるファイルです。
├ sig_id 各実験サンプルの固有識別子(ID)
├ cp_type / cp_time / cp_dose 実験条件(薬か偽薬か、投与時間 24/48/72時間、投与量 高/低)
├ g-0 ~ g-771 772種類の遺伝子発現データ(すべて小数点付きの数値)
├ c-0 ~ c-99 100種類の細胞生存率データ(すべて小数点付きの数値)
train_targets_scored.csv 学習用の正解データ(教師データ)。モデルの「目標(Y)」となるファイルです。
└ 206種類の作用機序カラム 各薬の効き目の有無を示すバイナリフラグ(0 = なし、1 = あり)。1行の中に「1」が複数存在し得るマルチラベル構造です。
test_features.csv Kaggleに提出する予測値を計算するための、本番用入力データです(正解は含まれません)。

このコンペティションの最大のポイントは、入力データが「実験条件を表すカテゴリ変数」と「ひたすら横に並ぶ872個の純粋な数値」だけで美しく整理されている点にあります。面倒な文字列処理や画像の埋め込みが一切ないため、初期の数値データそのままでLightGBMへダイレクトに投入可能なデータ構造となっています。

予測タスク:実験条件と872個の数値データから、206種類のターゲットフラグ(0 または 1)を同時に予測するマルチラベル分類

あえて高度な特徴量抽出は行わず、この数値の塊をそのままLightGBMに学習させ、206個の各ターゲットに対してどのような境界線を描くことができるのか、まずはストレートな実力を検証します。なお、オマケデータである「train_drug.csv」やスコア対象外の「train_targets_nonscored.csv」は初手では一切使用せず、完全に無視して進めます。

3. 今後の流れ

必要な3つの基本CSVファイルが手元に綺麗に揃いました。まずは実験条件(cp_time や cp_dose など)をLightGBMが読める形式にカテゴリ数値化する最低限の前処理だけを行い、そのまま206回ループさせてLightGBMの二値分類モデルを回すベースラインパイプラインの構築に移ります。


PR