【Kaggle】初めてのKaggle参戦(Titanic: Machine Learning from Disaster)


皆さんこんばんは。

機械学習勉強中ということで、かの有名なKaggleにトライしてみることにしました。 3年位ずっとSNS(Web)ディレクターとしてやってきてますが、 いい加減ずっとやりたかった機械学習とか技術で勝負する部分に手を出してます。 会社で出来ないならもう自分でやるしかないよね。 社内で一番近い部署には行くことになったけど、やっぱちょっと違う。 すでにあるモデルを使いたいんじゃなくて、モデルを作ったりすることが楽しいんです。探求することが楽しいんです。 とか思って個人で有料講座受けて勉強しているので、アウトプット兼備忘録として。

さて、半分愚痴な戯言は置いておきまして、Kaglleについての概要は以下となります。

Kaggleは企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。 wikipediaより

要は世界中の機械学習エンジニアたちが各データに対して、 最も性能の良いモデルを作って競い合う場です。

Kaggleのすごいところは ・誰でも参加できること ・上位者には大きな賞金が出ることです。 驚くべきことに、賞金10万ドルみたいなコンペティションが普通にあります。(上位者で配分パターンが多いみたい?) もちろんそういうものは参加者が非常に多く、数千人規模・それもその道のスペシャリストばかりなので、ハードルはかなり高いのですが…

さて、実際に今回行ってみたコンペティションは、入門中の入門用として、 Kaggleが用意しているタイタニック号の生存予想問題となります。 https://www.kaggle.com/c/titanic

以下実装手順のメモ書きと実際のコードとなります。

  • IDデータ、正解ラベル、特徴データに分類する
  • カテゴリ変数(データが文字のもの)をOneHotEncodingで数値データとして扱えるようにする
  • 欠損値(NaN)はそのままでは支障が出るため、欠損値は補完する
  • 色々なモデル・パラメーターでベストなモデルを探す
  • 訓練データと同じ前処理をテストデータにも行う
  • テストデータに対して予測を実行

テストデータ読み込み時に、元の訓練データに入っていないデータがあった場合などの処理も学んでいるのですが、 そのまま公開するのも有料講座で講座開催側的によろしくないかと思ったので一旦見送っています。

■train.csvを用いた予測モデルの構築

■test.csvを用いた予測

このコードで作成した CSVをKaggleのコンペページにドラッグ&ドロップで提出完了です!

実装自体は正直簡単です。 ただ現在の順位は4,000位でした… 半分くらいまで行ったけどどうなのかないいのか、でも物足りないよな… ということでネットの情報など参考にしてもう少し頑張ってみます。

まだまだ初心者ですが、自動化を夢見る人間として頑張っていきます。データを元にした予測って面白い。