kaggle の titanic チュートリアルに挑戦した話
TRANSCRIPT
Titanic: Machine Learning from Disaster
自己紹介内山雄司 (@y__uti)
◦ http://y-uti.hatenablog.jp/ (phpusers-ja)
仕事◦ 受託開発の会社 (株式会社ピコラボ) でプログラマをしています
興味◦ プログラミング言語処理系
◦ 機械学習
2017-06-02 社内勉強会 2
本日の発表の要点1. Kaggle面白いからみんなやってみるといいよ!
2. Pandas 便利だからみんな使ってみるといいよ!
2017-06-02 社内勉強会 3
Kaggleとは?https://www.kaggle.com/
"Your Home for Data Science"◦ Datasets: データセットを持ち寄って公開したり
◦ Kernels: Python や R のコードを公開したり
◦ Discussion: 機械学習の手法などについて議論したり
◦ Jobs: 採用活動や求職活動ができたり
というコミュニティサイトのようですが・・・
何と言っても◦ Competitions: 与えられた課題に対する成績 (予測精度) を競う
2017-06-02 社内勉強会 4
Competitions
◦ 完全にガチです
2017-06-02 社内勉強会 5
Titanic:Machine Learning from Disaster入門者向けの常設コンペ
2017-06-02 社内勉強会 6
◦ 参加者 6,940 teams と大変賑わっている
というわけで私もアカウントを作ってチャレンジしてみました
Titanic とは?
2017-06-02 社内勉強会 7
◦ https://ja.wikipedia.org/wiki/タイタニック_(客船)
何を競うのか以下の特徴量から「乗客の生死を予測」して正解率を競う
2017-06-02 社内勉強会 8
◦ https://www.kaggle.com/c/titanic/data
データ数 (乗客数)
◦ Training 891 こちらは "survival" が 0, 1 で与えられる
◦ Test 418 こちらは "survival" が隠されている
参加方法簡単!1. Kaggleのアカウントを作ってログインする
2. データをダウンロードする
◦ train.csv
◦ test.csv
3. test.csv の各乗客の生死を予測して csv ファイルを作成する
4. csv ファイルを登録する
csv ファイルを登録すると即座に集計されて順位が出る
頑張りたければ何度でも繰り返し登録できる◦ ただし 1 日 10 回まで。極端な連投はできない
2017-06-02 社内勉強会 9
やってみた!予測手順1. データをじっくり眺める
2. 判別に使う特徴量を抽出する◦ 敬称 (Mr. / Master / Mrs. / Miss)
◦ 客室等級
◦ 同一の旅券番号を持つ乗客数 (本人を含む)
◦ 同一の旅券番号を持つ乗客の生存率 (本人を含まない)
◦ 乗船港
3. 機械学習を使って判別する◦ SVM を利用して分類 (RBF kernel)
◦ 超パラメータ (gamma, cost) は 10-fold 交差検定でグリッドサーチ
2017-06-02 社内勉強会 10
1. データをじっくり眺める乗客の属性 (性別や年齢など) はどのような分布になっているか
どのような属性を持つ乗客が生存しているか
"... some groups of people were more likely to survive than others, such as women, children, and the upper-class."
◦ https://www.kaggle.com/c/titanic
詳細は Jupyter Notebook で
2017-06-02 社内勉強会 11
2. 判別に使う特徴量を抽出するいろいろ試したが以下の特徴量を使うのが最も精度が高かった◦ 敬称 (Mr. / Master / Mrs. / Miss)
◦ 客室等級
◦ 同一の旅券番号を持つ乗客数 (本人を含む)
◦ 同一の旅券番号を持つ乗客の生存率 (本人を含まない)
◦ 乗船港
2017-06-02 社内勉強会 12
3. 機械学習を使って判別するいろいろ試したが SVM が最も精度が高かった
◦ RBF kernel
◦ 超パラメータ (gamma, cost) は 10-fold 交差検定でグリッドサーチ
テストデータの正解率 80.8%
2017-06-02 社内勉強会 13
比較:職人芸で分類データをじっくり眺めていると「勘所」が分かってくる◦ ちょっと見ていると
◦ 客室等級が 1st, 2nd の女性と子供 ほぼ生存 90% 以上
◦ 客室等級が 1st の男性 (子供を除く) 微妙 30% 程度
◦ 客室等級が 3rd の女性と子供 微妙 50% 程度
◦ 客室等級が 3rd の男性 (子供を除く) ほぼ死亡 10% 程度
◦ もう少し頑張ってみると◦ 客室等級が 3rd の女性と子供
◦ 同乗者数が 4 人以下 50% 超
◦ 同乗者数が 5 人以上
2017-06-02 社内勉強会 14
参考になる情報Titanic Data Science Solutions
◦ https://www.kaggle.com/startupsci/titanic-data-science-solutions
Kaggleの titanic 問題で上位 10% に入るまでのデータ解析と所感
◦ http://www.mirandora.com/?p=1804
RMS Titanic (Wikipedia)
◦ https://en.wikipedia.org/wiki/RMS_Titanic
Encyclopedia Titanica
◦ https://www.encyclopedia-titanica.org/
2017-06-02 社内勉強会 15
おわり
2017-06-02 社内勉強会 16