機械学習

借金が返済できるかできないか予測!【MLC#13】

こんにちは、チズチズです!

タイトルが印象強いwのは気にせずに

今日からまた新しく問題を解いていきます。

今まで分類を扱っていましたが、全然わからなかったので復習しようと思って問題を選びました。

Home Credit Default Risk

この問題です。顧客データから借金返済ができるかできないかを予測する問題です。

前書き

この予測問題には8個くらい?データがありますが、メインのデータ1つのみ使用します。(機械学習を学ぶ為だからガチじゃなくていい

このコンペはある銀行が開催しています。膨大な顧客データから借金返済ができのかどうかを判断するものです。もちろん借金返済できない人はできる人に比べて圧倒的に少ないため、難しくなりそうです。単純に重要度求めてロジスティックに突っ込むだけだと厳しいのかな~とも思います。

ある人が言うにはテロリストかどうか判定する問題だったら~っていうのは精度が99.9999%だったとしてもテロリストの人は殆どいないから予測は全員テロリストではないというものにしたほうがよほど良いとかです。しかし、全部片側にしているデータは良いのでしょうか?正確性はあるかもしれませんが、良いモデルとは言えません。

このデータは不均等なデータと呼ばれます。このように不均等なデータにはROCやAUCを使うのが良いとされています。

【ROC曲線とAUC】機械学習の評価指標についての基礎講座

コード書いていこう

Start Here: A Gentle Introduction

このコンペを参考にしますが、前とは変えてあくまでも参考にします。そのままパクるのもつまらないし真似だけで自己流が無いと悲しいなと思ったからです。

データ読み込み

前回よりかは圧倒的にデータは減りましたw

前回のはこのようにトレイン60万テスト90万w

今回はトレイン30万、テスト5万になりました。

減ったといっても1か0分類だからこれくらいなのかなぁ

データの吟味

ゆっくり味わいます。

今回は

0:カードの返済が期日まで出来る

1:カードの返済が期日を過ぎる

このようなデータなので、トレインのtarget変数を見てみます。

やっぱり1は圧倒的に少ないです… グラフで見てみます。

本当に数週間前に知ったんですが、Pandasでデータをそのままプロットできるそうで…(1行+plt.show()

やってみます。

簡単にヒストグラムが完成しました。グラフを見てみると1の個数が少ないのは一目瞭然です。

敵1【欠損値】

いつもの欠損値の処理を行います。あのKernelには列ごとに欠損値を求めています。初めてみたので使ってみます。

見てみる限り面白い関数だなぁと思っています。

割合で降順に表示させるとわかりやすいです。

欠損値結構多いw

今までここまで欠損値が多いデータを見たのは初めてです。

補完をしなければいけません。これからは簡単に欠損値を処理できるXGBoostを使います。

列を見る

前にもやったあれです。浮動小数点か整数か

object型がある~

数値じゃないから機械読み取れない…

object型のものがいくつあるか見ます。

これを次は多分ダミー変数にさせて数値化させると思います。

これは特に難しいことではありません。

次は…

時間が迫ってしまったため、今日はここまでにして明日から続きを書いていこうと思います。

吟味としては大体できたので十分かなって感じです。

次は重要度とか見るのまでが行けるのかな~と思います。

お読みいただいてありがとうございました。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です