MI(マテリアルズインフォマティクス)勉強ログ⑤ SIGNATEの練習問題をやってみる
はじめに
前回の記事では、材料データはただの数字ではなく、
「どう作ったか」「どう測ったか」「どんな条件だったか」まで含めて見る必要がありそうだ、という話を書きました。
次はいよいよ実際のデータを触ってみようと思います。
当初は、近赤外スペクトルから木材の含水率を予測する課題に挑戦しようと考えていました。
ですが、説明動画を見ると、最初に挑戦するにはすこしハードルが高いなという印象を受けました。
そこで今回は、いきなり材料データに入る前に、SIGNATEの初心者向け練習問題である
タイタニックの生存予測
に取り組んでみることにしました。
材料データではありませんが、まずはデータ分析の基礎を固めようと思います。
記事にするうえで気をつけたこと
SIGNATEの課題を記事にするため、まず情報公開ポリシーを確認しました。
今回確認した範囲では、実行単位のソースコードや学習済みモデルの公開は不可となっています。
一方で、提供されている情報やデータを用いて得た知見、スニペットや集計量などの加工データを含む解法等については公開可能とされています。
そのため、このnoteでは、
・実行単位のソースコードは載せない
・学習済みモデルは公開しない
・提出スコアや詳細な改善手法は扱わない
・課題の流れや、自分が理解したことを中心に書く
と記事を書いています。
ちゃんとしたコードを確認したい!
という方はぜひSIGNATEのコンペを覗いてみてください。
チュートリアルなので、データ分析の方法やコードも含めわかりやすく解説してくれています。
なぜKaggleではなくSIGNATEなのか
データ分析の練習というと、Kaggleを思い浮かべる方も多いと思います。
Kaggleは世界中で使われている有名なデータ分析コンペのプラットフォームで、データセットやNotebookも多く、学習環境としてかなり充実しています。
ただ、今回はまずSIGNATEを使ってみることにしました。
理由は、日本語で取り組みやすいことと、国内サービスなので課題文や提出の流れを確認しやすいと感じたからです。
私はまだデータ分析やコーディングを勉強中なので、
課題文を読むところでつまずきすぎると、本題に入る前に力尽きそうです。
まずは日本語で内容を確認しながら、
・データを読む
・モデルを作る
・提出する
という流れを一度体験したいという理由でSIGNATEを選んでいます。
ただ、Kaggleは世界的なプラットフォームなので、材料に関する題材も豊富です。
SIGNATEで慣れたら、Kaggleにも挑戦してみたいと思っています。
今回取り組む課題
今回取り組むのは、SIGNATEの初心者向け練習問題である
タイタニックの生存予測
です。
タイタニック号の乗客データを使って、それぞれの乗客が生存したかどうかを予測する課題です。
材料データではありませんが、解説記事も豊富で取り組みやすい課題です。
実際に起きた痛ましい事故なので、色々と思うところはあります。
気持ちを切り替えて取り組む必要がありました。
データ分析の流れを一周してみる
今回のチュートリアルでは、まずデータ分析の基本的な流れを一通り体験しました。
ざっくり書くと、流れはこんな感じです。
・データを読み込む
・データの中身を確認する
・欠損値(データがない空欄部)を補完する
・予測したい値と、予測に使う情報を分ける
・モデルを作る
・評価用データに対して予測する
・提出用ファイルを作成して、SIGNATEに提出する
今回のタイタニック課題では、乗客の情報から「生存したかどうか」を予測します。
生存なら1、亡くなっているなら0とし、乗客のデータを元に1なのか0なのかを予測していきます。
この練習問題のデータを使用して、scikit-learnで使える基本的な分類モデルを使いながら、特徴量を変えると結果の見え方が変わることを確認しました。
SIGNATEに提出してみる
予測結果ができたら、説明に従って提出用ファイルを作成し、SIGNATEに提出しました。
提出形式が決まっているので、サンプルファイルの形に合わせる必要があります。
少し意外だったのは、提出する値です。
生存したかどうかを予測するなら、
「0か1を出すのかな」と思っていました。
ただ、この課題では評価指標にAUCが使われているため、
生存するかどうかのラベルではなく、生存する確率を提出する流れになっていました。
ここまでで、
「データを読む → モデルを作る → 予測する → 提出する」
という一連の流れを体験できました。
第一歩は踏み出せたので、今後も少しずつ課題に取り組みながら、データ分析の流れに慣れていきたいと思います。
今回のまとめ
SIGNATEの練習問題を通して、データ分析の基礎的な流れを学びました。
丁寧なチュートリアルがあるので、初心者が最初に手を出しやすかったと思います。
今回の実践を通して、データ分析はモデルを作る部分が重要と思っていたのですが、
データの欠損値を補完したり、データの相関を確認するなどの
前準備も非常に重要なのだと理解しました。
次にやること
今回の私なりの理解は、
データ分析は、いきなり高精度なモデルを作ることよりも、
まず「データを読む → 予測する → 提出する」という流れを一度通してみることが大事。
ということです。
まだ入口に立ったところですが、
SIGNATEの練習問題を通して、データ分析の流れが少し見えてきました。
次は、今回の経験をもとに、欠損値や特徴量の扱いなどを少しずつ整理していきたいと思います。
記事として載せられる内容がまとまったら、また学習ログとして投稿予定です。
