Upgrade to Pro — share decks privately, control downloads, hide ads and more …

190821 不均衡 データとの戦い方(前処理編) うっちーさん

190821 不均衡 データとの戦い方(前処理編) うっちーさん

RPACommunity

August 21, 2019
Tweet

More Decks by RPACommunity

Other Decks in Technology

Transcript

  1. 自己紹介  福岡県出身、学生時代を福岡で過ごす。  2008年 大学院を修了、専攻は応用数学。 その後、東京のソフトウェア会社に就職。  2017年 マクニカネットワーク株式会社に転職。

     2019年3月まで「Splunk」Pre Sales 技術担当。  2019年4月より、現在の部署でAI関連の業務に勤しむ。  2019年7月G検定合格。  特技・趣味  お酒大好き。九州男児。  幼少期子役としてCM、舞台等に出演。  将棋好き。某将棋アプリで三段です。  Facebook: /masakatsu.uchida.5 2
  2. 不均衡データってなに?  クラスに属するサンプルサイズに偏りがあること  100人のデータセットからがん患者を予測したい  100個のサンプルから、不良品を予測したい 予測したい カラム True

    True ・・・ True False 99件 1件 テストデータ100件中、全部Trueで予測すればモデルの精度(Accuracy)は99% このモデルは予測したいこととマッチしてますか? 6
  3. サンプルサイズの調節について Oversampling:いわゆる、データの水増しです。 Undersampling :いわゆる、データの間引きです。 予測したい カラム True True ・・・ True

    False ・・・ False 70件 30件 ダミーデータを用いてデータを水増し 適度な件数になるようにデータを間引き 99件から70件 に間引き 1件から30件 に水増し 10
  4. サンプルサイズを調節する方法について  Oversamplingの代表的な手法をご紹介します。  Random oversampling  Smote(Synthetic Minority Oversampling

    Technique) 改良版として、SVMSMOTEなどがあります。  ADASYN(Adaptive Synthetic) SMOTEのイメージ 11
  5. モデルの評価方法について  このスライドでは、モデルの評価方法についてご紹介します。  混同行列(Confusion Matrix)について  Accuracyの定義について  Accuracy以外でよく使う指標について

     適合率(Precision)  再現率(Recall)  F1 score FP TP TP call + = Re ecision call ecision call score Pr Re Pr * Re 2 + = FN TP TP ecision + = Pr 13 TP: True Positive FN: False Negative FP: False Positive TN: True Negative TN FN FP TP TN TP Accuracy + + + + = F1 PrecisionとRecallの両方を使う指標で、 不均衡データのモデル評価によく使わ れる評価方法の一つ。 不均衡データの場合、Accuracyだけでは いいモデルか判断できない場合がある。
  6. Datasetの説明  下記データセットをいます。  「Default of Credit Card Clients Dataset」

    https://www.kaggle.com/uciml/default-of-credit-card-clients-dataset/version/1#  台湾の2005/4月~2005/9月の貸付データ  カラム数25個 × レコード数3万件 翌月デフォルトした件数は6,636件 (約21.6%) 16
  7. 環境まわり CSVファイル読込 モデル作成 モデル作成 モデル評価 CSVファイルを訓練デー タとテストデータに分割 モデル評価 Oversamplingなし 訓練データを使って

    Oversampling CSVファイル読込 CSVファイルを訓練デー タとテストデータに分割 ※本資料で用いたソースコードはGithubに公開し ています。 https://github.com/MacUchida/for_actionable_ai 17 項目 内容 OS Ubuntu 16.04 言語 Python3 開発環境 Jupyter Notebook 使用した主なライブラリ • imbalanced-learn • scikit-learn • LightGBM その他 一部Paxataを利用
  8. 結果① 18 78.3% 78.3% 78.3% 21.6% 0.0% 0.0% 0.0% 35.5%

    0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0% 80.0% 90.0% なし SMOTE SVMSMOTE ADASYN アルゴリズム:SVMの場合 Accuracy F値 単にOversamplingしただけではF1 scoreは向上しなかった。 全てFalseと予想 全てTrueと予想
  9. 結果② 19 前処理(標準化)実施後、Oversamplingした場合、 F1 scoreがやや向上した。 76.0% 73.9% 74.5% 73.3% 25.0%

    27.3% 27.3% 27.4% 0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0% 80.0% なし SMOTE SVMSMOTE ADASYN アルゴリズム:SVM+前処理(標準化)を実施した場合 Accuracy F値
  10. 結果③ 20 73.7% 72.6% 73.3% 73.1% 41.4% 39.8% 41.1% 40.0%

    0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0% 80.0% なし SMOTE SVMSMOTE ADASYN アルゴリズム:Decision Treeの場合 Accuracy F値 Oversamplingすると、AccuracyもF1 scoreもやや低下した。
  11. 結果④ 21 82.8% 82.2% 80.9% 81.3% 48.3% 50.6% 51.6% 51.4%

    0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0% 80.0% 90.0% なし SMOTE SVMSMOTE ADASYN アルゴリズム:LightGBMの場合 Accuracy F値 Oversamplingすると、 Accuracyはやや低下したものの、 F1 scoreは向上した。
  12. まとめ  データセットが不均衡データになってしまった場合でも、あきらめないで。  サンプルサイズを調節する手法として、「Oversampling」をご紹介しました。  実際に「Default of Credit Card

    Clients Dataset」というデータセットを使って、サンプル サイズを調節する手法にて効果があるか確認しました。  今回紹介できませんでしたが、他にもアルゴリズムレベルでチューニングする方法もあり ます。  モデルの評価指標も検討しましょう。 23
  13. 25