AI初心者がTitanic Challengeに挑戦 #04

昨日はTitanicをさぼったわけではないが、noteに書く時間が無かった。

※ちなみに今日はTitanicをさぼって、このnoteを書いているので、結局1日さぼっていることにはなる。

■今回の手順: 昨日書いた、「41人中全員を死亡としている(実際には4割弱生存とみられる)女性Pclass 3 乗船港 S」が散々な結果だったが、データ不備があった点をやり直し。

具体的には1人当たりチケット価格を学習データとテストデータの両方を使って計算やり直し。結果は、、、

■結果:正解率が0.77751に戻った。

良い言い方をすれば、チケット価格の計算をやり直して良かったと言えるし、悪い言い方をすれば、それでも性能は単純に「41人中全員を死亡とした」時と同じ、ってことになる。これをどう考えるか。。。

データ以外のノイズが相当大きいように感覚的には思う。昨日届いた本(口述)でも、解説されている技法でのベスト正解率が0.77990(私のと比較して正解が1人/448人多いだけ)であり、この辺が実は素人レベルでは限界なのかも。しかもその0.77990をたたき出したのは、ランダムフォレストという、ものすごくざっくり言えば今の私の手法である「男性は全員死亡。女性は限られた条件を除き全員生存、限られた条件に合致する場合は全員死亡」という決定木手法をアンサンブルしたもの。

これだけデータ数もパラメータ数も少ない場合だと、こんな風になっちゃうのかもね。そろそろ他のコンペにチャレンジしてみたくなってきました。

■明日以降トライすること

・一昨日やるかもと書いた、男性Pclass 1の重回帰分析をやってみる

・昨日届いた「PythonではじめるKaggleスタートブック」にいくつかヒントが有ったので、まだ機械学習には行かず、重回帰分析を少ししつこく取り組む。例えば、

-乗船港は一つのパラメータにするのではなく、各々の港での乗船フラグを計3つ作る

-配偶者・兄弟・親子の人数は、0人の時(単独で乗船)と多人数の時が生存率が低い。線形ではないので、単純にパラメータにするのではなくフラグにしてみる

-年齢は子供が生存率高く、20代が低く、それより高い年齢層ではやや高くなる。これも線形ではないので、単純にパラメータにするのではなくフラグ等にしてみる


この記事が気に入ったらサポートをしてみませんか?