kaggleチュートリアルtitanicに挑戦
kaggleは機械学習の競技プログラミングみたいなやつです。これのチュートリアルtitanicをやります。機械学習によるデータ解析を実際に体験することが目的です。部屋の等級、性別、兄弟夫婦の人数、親子の人数、年齢層に対してカーネルSVMを使うことで精度82%まで行きます。
問題について公式の説明のリンクです。
Titanic: Machine Learning from Disaster | Kaggle
以下のリンクを参考にしました。英語ですが、かなりわかりやすいです。
EDA To Prediction(DieTanic) | Kaggle
描画のライブラリmatplotlibの解説はこれがわかりやすかったです。
データを扱うためのライブラリpandasはこれがわかりやすかったです。
この3ステップでやります。
作成したプログラムは全てgithubに上げてあります。
データを読み込みます。nullがあるデータを確認します。性別、年齢、共に乗った人、に順に注目してデータを可視化して分析しました。最後にtrain2.csvにデータを保存しました。analyze.pyです。
性別と生存率のグラフです。女性は生き残る確率が高く、男性は低いことがわかります。
部屋の等級と生存率のグラフです。上のクラスであればあるほど、生き残る確率が高いことがわかります。
まばらな感じですが、子供やお年寄りは生き残る確率が高く、中間層は低いことがわかります。
兄弟夫婦の人数は1人が生存率のピークです。0人でも生存率は下がります。また、多ければ多いほど、下がるようです。
親や子供の人数は1,2,3人だと生存率が高いです。0人だと下がります。4人以上で、かなり下がります。
年齢データ(Age)が連続値であるため、学習できないので 、年齢層で0から4の値を持つAge_bandに変換しました。性別データを0,1の数値データに変換しました。予測に必要のないデータを削除して、保存しました。convert.pyです。
年齢層と生存率のグラフです。16歳以下の生存率が一番高いです。
加工したデータを読み込みます。学習用にデータを変換します。カーネルSVMで学習して、精度確認して、終了です。精度は以下のようになりました。82%です。コードは1.pyです。
Accuracy(rbf SVM): 0.8208955223880597
以上、kaggleチュートリアルtitanicでした。kaggle、pandas、scikitlearn凄いです。
アドバイス、改善点、質問があればお願いします。