開発Divの瀧田です。今回もkaggleのコンペに参加した感想です。その1その2その3今回もモデルを更に改善したお話をさせて頂こうと思います。これまでやったことその1~その3を経てモデル作成までにやったことは次の6つの事です。欠損値に対する処理を行う。前回は年齢を例に出しましたが、それ以外にも運賃データなども欠損値がある為、チケットのクラスの平均値で補間を行なっています。機械学習ライブラリに適用するために、文字列データを数値データに変換する。数値データしか扱うことが出来ない為、文字データを他の数値データに変換しています。学習に利用しないデータを削除する。学習に利用しなかった列の情報は、学習を行う前に削除しました。全体の平均ではなくチケットのクラス毎の平均年齢で補間をしました。同乗者が居たかどうかを示す新たな特徴量として利用しました。今回のやっていくこと今回は更にモデルの改良をするために次の2つのことを行います。ダミー変数で置換した乗船した港の情報の利用方法の模索さて、今まで乗船した港の情報はダミー変数で置換し、そのまま学習データとして利用していました。して乗船した港の情報を利用出来ないか考えるために、タイタニック号が沈没するまでの歴史的背景を調べて見ます。タイタニック号は1912年4月10日にイギリスのサウサンプトン(港S)を出航し、1912年4月10日フランスのシェルブール(港C)に寄港した後、1912年4月11日にアイルランドのクイーンズタウン(港Q)に寄港しました。氷山にぶつかり沈没します。ここで、各港毎に生存割合を出してみると以下のようになります。港C:0.553571港Q:0.389610港S:0.336957港Cが最も生存率が高いことがわかります。港Qや港Sは3等クラスの乗客が最も多いことがわかりました。金銭的にあまり余裕のある人たちではなかったようです。いうわけで、乗船した港毎に数値に変換して新たに特徴量として利用しました。この特徴量を採用して学習したところ、0.76から0.77までスコアが伸びました。今までランダムフォレストで学習する際に、特にハイパーパラメータは変更せず、そのままの状態で学習させていました。ハイパーパラメータを最適化することで、より良いモデルが作成出来ることが期待できます。そこでハイパーパラメータの最適化によく使われる方法である、グリッドサーチを行いパラメータの最適化を施します。精度が良い組み合わせを採用する方法です。自分でいくつか指定します。scikit-learnのライブラリのGridSearchCVクラスを使えば簡単に探すことが出来ますが、パラメータを指定し過ぎると探すのに時間が掛かります。ハイパーパラメータ最適化をちょっと試した結果、0.77から0.79までスコアが上がりました。ハイパーパラメータ最適化をより丁寧に行えばスコアは更に伸びそうです。まとめ乗船した港の情報を見直して利用し、更にハイパーパラメータの最適化をすることで、スコアが0.76から0.79程度まで伸びました。ちなみに、コンペの順位は今回で6413位から2492位まで上がりました。なんと順位が4000近くも上がりました。今後もよりスコアを伸ばす余地がありそうです。調べていくうちに興味深い事実を知ることもあって面白いです。引き続き勉強して、より良いモデルを作って行きたいです。上位5%を目指します!以上です。10:30Tweet関連記事2018-06-13Kaggleコンペに参加してみました。開発Divの瀧田です。イベントレポート部の喜村です。今回は、今アツいJS...2018-05-08Prometheus+Grafanaでパフォーマンス監視をしています開発Div藤村です。Part1)こんにちは。Keepdata藤本です。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。