【python:機械学習】タイタニックのデータを分析してみる(完」)

2019年12月9日

機械学習の2回目。そして完了(笑)

日経ソフトウェア:2019年1月号をみながら作ってたのですが……

「この通りに書いても、動かないよね。」

抜けてる所があったり、考慮しなくてはいけないところが数点。

P.07~018 アイデア5:名前の継承

この通り実行すると、test_setではCrew1が生成されない。

理由は単純にtest_setにCrew1に該当する人がいないから。

train_setは全員分(891人)のデータがあるのでCrew1が生成されるのですが、test_setは約半分の418名分しかなく、そのデータにはCrew1に該当する人がいません。

その結果、列のアンマッチが起きてエラーになります。

多分、リスト21のループ処理での交差検証だったきがします。

対策としてはtest_setにCrew1を追加します。

# 不足カラムを追加
test_set['Crew1’]=0

Crew1が追加されるので、エラーにはならないと思うのですが、そもそもデータの解析がおかしいとこういった形になるのかなと。

なのでP.019でダミー変数を作成するときに「drop_first=True」を指定しているのですが、データの解析が甘いうちにやるとハマるかも。

私は念のために「drop_first=False」でやりました。

P.025 リスト22

my_solution = pd.DataFrame({'PassengerId’:PassengerID,’Survived’:y_pred})

上記のPassengerIDが無くてエラーになります。下記の1行を追加してPassengerIDを作っておきます。

PassengerID = test_set['PassengerId’]

もうちょっと良い書き方があるのかもしれませんが、これでなんとかなります。

実行

あとは書いてある通りの実行で良かったかなと思います。

で、第1回目のKaggleの結果は……

正解率:66.985%

もうちょっとあってもいいかなと。

順位が……

131位!?

いえ、13,1xx位のようです……。

ハイパーパラメータを調整して2回目のトライ。

正解率下がりました……。

まだ色々勉強が必要です。

とりあえず、最初の機械学習は終了です。

まともにリファレンスも見ずにやってたのですが、途中で色々な事をやってる人を見かけました。

面白そうだったな。まだまだ先は広そうです。