KaggleのHome Credit Default Risk体験(Keras、Pytorch編)

Kaggleの過去Featured問題「Home Credit Default Risk」を解いていきます。

このコンペは与えられた個人のクレジットの情報や以前の応募情報などから、各データが債務不履行になるかどうかを予測する問題です。

 

Kaggleで勝つには次の書籍がおすすめです。ディープラーニングを学ぶには違う書籍がよいでしょう。

 

[参考] 過去の機械学習関係の記事
 

ディープラーニングで解く

今回はディープラーニングのライブラリ「Keras」「Pytorch」を使って解いています。

さすがに本番コンペということもあり、正解率が低いと分かっているディープラーニングを使ったサンプルはネット上で見つかりませんでした。

ましてや「Keras」「Pytorch」の両方を試している人は、Kaggle以外でも多くないです。

なお、以前紹介した「Pytorch」のラッパーである「skorch」はエラーが出て動きませんでした。

ただえさえ情報が少ないライブラリでエラーが出てしまうと、不具合解析が面倒です。

なので、直接「Pytorch」を使うことにしました。さようなら「skorch」。

というより、「Pytorch」利用者達から、
 

「数十行のためにマイナーなラッパー使うのイミフ 笑ꉂꉂ(´ ∀`」

 

と、イジられたのが大きな要因の一つです。

Kerasで全結合モデルを構築する

Kerasでは過去に「全結合」「CNN」「LSTM」で作成した経験があるので、迷うことはありません。

前回のサブミットで「どちらのラベルに分類されるか確率で出力する」必要があることが分かりました。

このため「categorical_crossentropy」「softmax」を使って実数出力を試みましたが、出力結果が「0」「1」の2値にしかなりません・・・。

うーん、理由分からず。。。。

結果の出力

結果は次のようになります。

正確率は92%です。

サブミットしても「0」「1」の2値だと、Top95%程度だと思われるので確認していません。

Pytorchで全結合モデルを構築する

Pytorchはよく分かってませんが、前回の写経のおかげで理解が進み、なんとなく動作しました。

が、こちらも出力結果が「0」「1」の2値にしかなりません。

理由分からず。

そして、やっぱりKerasよりコードが長い。

結果の出力

結果は次のようになります。

正確率は90%です。

サブミットしても「0」「1」の2値だと、Top95%程度だと思われるので、こちらも確認していません。

まとめ

「Pytorch」と「Keras」で全結合モデルを構築して、問題を解いてみました。

少しずつライブラリの理解が深まり実装コストが下がっているので、今後も定期的に利用してみます。

ただ、Kaggle マスター曰く、Kaggleのスコアを本気で狙うのであればディープラーニングの知識は不要らしいです。

ディープラーニングの勉強目的でKaggleの問題を解いているのに・・・・・。

ソースコード

前回のsklearnの各種機械学習アルゴリズム版にKeras、Pytorchを継ぎ足したので、凄く長くなってしまいました。

ディープラーニングに必要な部分は半分もありません。

タイトルとURLをコピーしました