タイタニック号の乗客の生存予測~Kaggleに挑戦(その2)

タイタニック号の乗客の生存予測~Kaggleに挑戦(その2)

前回の投稿から1週間。

Kaggleのチュートリアルコンペであるタイタニック号の乗客の生存予測にリベンジしました。

※前回の投稿はこちら

前回は、学習用データ、テストデータの変数であるAge(年齢)の欠損値を、単純に学習用データの中央値で補完しました。

今回は、乗客のName(名前)の敬称とAge(年齢)との関係性に着目して、Age(年齢)の欠損値をより正確に補完して予測しました。

2018年12月追記:以下に最新のKaggle titanic tutorialへの取り組みをあげています。

Name(名前)とAge(年齢)の関係

学習用データのName(名前)を眺めていると、Mr、Missなどの敬称でグルーピングできることに気が付きます。

input:

output:

出力結果を見ると、Name(名前)は以下のルールで表記されることがわかります。

・「first name(名前), honorific(敬称). family mame(苗字)」

ここで、honorific(敬称)にはそれぞれに意味があるようです。

以下、wikipediaより。

Master: for boys or young men and as a title for the heir apparent of a Scottish baron or viscount. It may also be used as a professional title, e.g. for the master of a college or the master of a merchant ship.

Mr: for men, regardless of marital status, who do not have another professional or academic title. The variant Mister, with the same pronunciation, is sometimes used to give jocular or offensive emphasis, or to address a man whose name is unknown.
“Mr” is used with the name of some offices to address a man who is the office-holder, e.g. “Mr President”; “Mr Speaker”, see “Madam” below for the equivalent usage for women.

Miss: for girls, unmarried women and (in the UK) married women who continue to use their maiden name (although “Ms” is often preferred for the last two). In the UK, it is used in schools to address female teachers, regardless of marital status. It is also used, without a name, to address girls or young women and (in the UK) to address female shop assistants and wait staff.

Mrs: for married women who do not have another professional or academic title. The variant Missus is used in the UK to address a woman whose name is unknown.

実際に学習データの年齢について、敬称別に集計してみます。
input:

output:

敬称ごとに年齢の平均値に偏りがあることがわかります。

上の結果を見ると、Age(年齢)の欠損値を学習データのMedian(中央値)28で一律に補完するというのはだいぶ強引でしたね。

Age(年齢)の欠損値補完

それでは、学習データのAge(年齢)の欠損値を補完します。

以下のコードは、Age(年齢)が欠損値になっているデータに対しては、Name(名前)の敬称に着目し、その敬称の平均値で補完してあげるものです。

input:

次に、前回の投稿でも行ったデータの加工を行います。
input:

予測モデル構築とテストデータへのあてはめ

加工データを使って、予測モデルを構築します。

今回もロジスティック回帰で頑張ります笑

テストデータに対してもAge(年齢)の欠損値補完を行ったうえで、予測モデルをあてはめます。

input:

Kaggeleへ投稿

Kaggleへのリベンジ。その結果は

正答率は75.598%で、9,207人中7,801位でした。
前回よりも正答率は1.436%上昇、508位ランクアップ。
う~んこの。