AIコンペのプラットフォームであるKaggleに登録してみました。以前から興味がありつつ、なかなか腰が上がりませんでした。
ユーザ登録
登録方法は、Googleアカウントを使う方法と、Eメールアドレスを使う方法があります。今回はGoogleアカウントを使ってみました。ユーザ情報入力画面で、User nameとFull nameの入力欄があり違いに悩みましたが、User nameがアカウント名のようで、後から変更不可となります。後は指示通りに進めていけば、登録完了となります。
開発環境
諸々の作業はクラウド上で行ないます。これまでクラウド環境で開発をしたことがないので、ユーザインターフェイスに慣れるまで戸惑いました。
まずはnotebookを作成します。左上にコードエディタのセルがありますので、そこでコーディングができます。実行は上部のバーにある再生ボタンで行ないます。コードエディタのセルは複数作ることが可能で、下の方へ連なっていきます。デスクトップアプリだとタブ形式を使っていたので、最初違和感がありました。実行時の出力はコードエディタセル直下に出力されます。併せて、コンソールウィンドウにも出力されます。
コンソールウィンドウは最下部に閉じられた状態で存在します。最初、ちょうどこの部分に別の確認用ウィンドウが出ていて、コンソールの存在に気づけずにしばらくハマっていました。コンソールではLinuxコマンドを利用できますので、ディレクトリ構成などを把握できます。
コンペ参加
続いてコンペに参加する方法です。今回は入門用コンペであるTitanic Disasterに参加してみました。タイタニック号の乗船客の属性情報を元に生存結果を予測し、その的中度を競う内容です。学習用のデータはtrain.csvとして提供され、スコア判定用のデータはtest.csvとして提供されます。test.csvには生存結果を示すSurvivedの列はありません。
とりあえず一番馴染みのあるScikit-learnによる線形回帰モデルを使ってみます。精度は意識せずに適当なパラメータを説明変数にして、目的変数はSurvivedとして学習させました。提供される学習データには欠損値があるので、適切に前処理する必要があります。
学習モデルが完成したら、test.csvの内容から乗船客の生存有無を推測し、PassengerIdとSurvivedのcsvファイルを作成します。右側にあるSubmit to Competetionからcsvファイルを提出すると、スコアが算出されます。最初何度か提出してもスコアが0になりましたが、原因は0か1で表すべきところを、0.0や1.0で表していたことが原因でした。数値としては等価のはずですが、Kaggleのスコア判定時には不一致とみなされるようです。
スコアは0.65程度でした。適当に選んだけあって精度は全然ですね。各特徴量に対する評価手法などを用いて、より適切な説明変数を選びたいと思います。