【python:機械学習】タイタニックのデータを分析してみる(完」)
機械学習の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回目のトライ。
正解率下がりました……。
まだ色々勉強が必要です。
とりあえず、最初の機械学習は終了です。
まともにリファレンスも見ずにやってたのですが、途中で色々な事をやってる人を見かけました。
面白そうだったな。まだまだ先は広そうです。
ディスカッション
コメント一覧
まだ、コメントがありません