サービス詳細
RapidMinerによるクレジットカードの不正検知 ~SMOTEを使ったアップサンプリングを利用~ - Natic | Application Modernization Platform – 日商エレクトロニクス

RapidMinerによるクレジットカードの不正検知 ~SMOTEを使ったアップサンプリングを利用~

rapidminer-Smote

本記事で紹介したいこと:

AI機械学習は、クレジットカード会社などのカードの不正検知に利用されることが多くなっています。実際の不正検知では、教師あり学習と教師なし学習の2つのアプローチを併用します。教師あり学習は、過去に行われた手口を検出します。一方、教師なし学習は、過去に行われたことがない新たな手口を検出します。今回は、RapidMinerの教師あり学習アルゴリズムを使ったクレジットカードの不正検知のやり方を紹介します。
 
rapidminergo biginner

目次 Table of Contents:

  1. 不正検知の3つのアプローチ
  2. SMOTEを使ったアップサンプリング
  3. RapidMinerによるクレジットカードの不正検知
  4. まとめ
  5. 製品や関連資料の紹介

1. 不正検知の3つのアプローチ

不正のパターンには、過去に行われたパターンと全く新しいパターンの2つがあります。不正検知では、この両方のパターンに対応する必要があります。前者には教師あり学習、後者には教師なし学習と半教師あり学習が有効であるとされています。教師あり学習では、まず学習フェーズで入力データと正解データを学習して予測モデルを作成します。次に予測モデルによって未知の入力データの予測
(正常 or 異常)を行います。入力データと正解データの中に過去に行われたパターンが含まれています。教師なし学習では、正解データのない入力データを学習してモデルを作成します。そのモデルによって入力データを複数グループに分類します。半教師あり学習では、正常データのみの入力データを圧縮と復元して入力データに近い出力データを生成できるモデルを作成します。このモデルで異常データを含む入力データから出力データを生成すると両社の間に誤差が発生します。この誤差の度合いによって異常検知を行います。半教師あり学習で利用されるAutoencoder(自己符号化器)は、ニューラルネットワークを用いて次元圧縮と特徴抽出を行うアルゴリズムです。

01RAPIDMINER_SMOTE

2. SMOTEを使ったアップサンプリング

クレジットカードなどの利用データから異常検知を行う場合、異常データの割合が少ないことが問題になります。実際の現場では、異常データの割合が20%以下、中には1%に満たないケースもあります。正常データと異常データの割合が違う不均衡データを利用するとバランスの良いモデル精度が得られないことがあります。このような場合、異常データをバランス良く増やして正常データと均衡化する
SMOTE(Synthetic Minority Oversampling Technique)と呼ばれる手法を利用します。SMOTEでデータを増やす手順を20人の身長と体重をプロットしたグラフを使って説明します。
・X1を少数派のデータの1つとします。
・X1の近傍の点からランダムに1つの点、この場合はX2を選択します。
・X1とX2の間に新しい点X12を発生させます。
つまり、グラフ上で自分の近傍の人が同じ体格なので、その間の人も同じ体格であるというアプローチです。

02RAPIDMINER_SMOTE

 

3. RapidMinerによるクレジットカードの不正検知

今回は、RapidMinerでSMOTEを利用したクレジットカードの不正検知のやり方を紹介します。
利用するデータ:Credit Card Fraud Detection(from Kaggle)
RapidMiner Studio v9.10(こちらのサイトからフリー版をダウンロードいただけます)*1
使用するアルゴリズム:ロジスティック回帰
アップサンプリング手法:SMOTE(Synthetic Minority Oversampling Technique )

3-1. SMOTE前後の学習データ

学習データのFalseが正常データ、Trueが異常データです。SMOTE前は、正常データが全体の99%、異常データが1%の割合です。一方、SMOTE後は、正常データと異常データの割合が50%であることが分かります。正常データと異常データの件数は、どちらも5000件になっています。

03RAPIDMINER_SMOTE

3-2. SMOTEを使ったプロセス

RapidMinerを使えば、簡単なGUI操作でSMOTEが利用できます。プロセスは、メインプロセスとCross Validation(交差検証)サブプロセスに分かれています。メインプロセスの上の段が学習フェーズ、下の段が検証フェーズです。学習フェーズでは、SMOTEによる異常データのアップサンプリングを行います。検証フェーズでは、未知のデータの予測精度(汎化性能)を検証します。サブプロセスでは、Logistic regression(ロジスティック回帰)アルゴリズムによる交差検証を行います。

04RAPIDMINER_SMOTE

05RAPIDMINER_SMOTE

3-3. 汎化性能

今回、利用データに潜む不正データを検知することが目的なので正例(True)のRecall(再現率)を重視します。SMOTE前の再現率が66.30%、SMOTE後の再現率が84.78%にアップしています。その差が18.48%なのでデータの均衡化が効果的であることが分かります。なお、SMOTE前後でPrecision(適合率)が下がっています。適合率は、モデルが不正データと予測した対象のうち、本当に不正データだった割合です。不正データと予測したが実際には不正データでなかった割合が多かったことになります。実際のプロジェクトでは、このあたりの原因を予測結果に対する説明変数の重要度などから調査することになります。RapidMinerでは、説明変数の重要度を確認するWeights(重要度)やSimulator機能が提供されています。

06RAPIDMINER_SMOTE

4. まとめ

4-1. クレジットカードの利用データの不正検知では、不正データの割合が少ないことが問題となることが多い
4-2. SMOTE(Synthetic Minority Oversampling Technique )は、少数データを多数データと同じ件数に増やす手法
4-3. RapidMinerでは、簡単なGUI操作だけでSMOTEを利用することが可能
4-4. SMOTE前後で正例の再現率が約20%アップしたので、実際のプロジェクトでの効果が期待できる

5. 製品や関連資料の紹介

*1・機械学習プラットフォーム RapidMinerについてはこちら
・RapidMinerのトレーニング(無料ウェビナーあり)についてはこちら
・RapidMiner無料トライアルダウンロードサイトは こちら
※RapidMinerのトライアル有効期限はダウンロードから30日間です。

・参考資料1. RapidMiner Marketplace Operator Toolbox
・参考資料2.「Pythonで儲かるAIをつくる」(日経BP)
・参考資料3.「東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶ
デ―タ分析~」(マイナビ出版)

—————————————————————————————————
記事担当者::アプリケーション事業推進部 長井伸次
投稿日:2022/01/28

 
rapidminergo biginner