クレジット カード詐欺の検出: 実践的なプロジェクト
発見:
- クレジットカード不正検出の重要性を理解する
- プロジェクトの「クレジット カード不正検出」データセットの紹介
- 堅牢な不正検出モデルの構築
- モデルのパフォーマンスの評価
- モデル結果の解釈と分析
World Payment Report 2022 は、非現金取引の急速な成長と、B2B 決済バリュー チェーンおよび中小企業の重要性を強調しています。また、将来的には以下のような非現金取引が着実に成長すると予想されます。
有望に見えるかもしれませんが、不正取引も増加しています。EMV スマート チップの導入にも関わらず、依然としてクレジット カード詐欺によりかなりの金額が失われています。
どうすればリスクを最小限に抑えることができるでしょうか? 損失を減らし、詐欺を防止するためのさまざまなテクニックがありますが、ここでは私のアプローチをガイドし、私の発見を共有します。
I. データセットについて
Kaggle の「Credit Card Fraud Detection」データセットは、2013 年 9 月にヨーロッパのカード所有者によってクレジット カードで行われた取引を含む、非常に不均衡なデータセットです。データセットには合計 284,807 件のトランザクションが含まれていますが、そのうち不正なものは 492 件のみであり、データセットは非常に不均衡になっています。データセットには 28 個の特徴が含まれており、これらは機密情報の機密性を維持するために PCA 変換によって取得された数値です。このデータセットの目的は、不正取引をリアルタイムで正確に検出できるモデルを構築して、不正行為を防止し、カード所有者や銀行が被る損失を軽減することです。このデータセットは、不均衡なデータセットを処理するためのさまざまな分類アルゴリズムや手法を評価するために、機械学習研究で広く使用されています。
Ⅱ.探索的データ分析
データが利用可能になったので、Time
、Amount
、Class
列をいくつかチェックしてみましょう。
1. 時間
プロットから、時間フィーチャには 2 つのピークを持つ二峰性分布があることが観察できます。これは、クレジット カード取引がより頻繁に行われる 1 日の中で 2 つの期間があることを示しています。最初のピークは約 50,000 秒 (約 14 時間) で発生し、2 番目のピークは約 120,000 秒 (約 33 時間) で発生します。これは、クレジット カード取引のタイミングに、不正行為の検出に役立つパターンがある可能性があることを示唆しています。
2. 金額
プロットから、量特徴の分布が右に大きく偏っており、右に長い裾があることがわかります。これは、大部分の取引の金額が低い一方で、少数の取引の金額が非常に高いことを示しています。結果として、これは、データセットに取引額の点でいくつかの外れ値が含まれていることを示唆しています。Amount
したがって、不正行為検出用のモデルを構築する場合、ログ変換や堅牢な統計手法などを使用して、機能内の外れ値を処理する必要がある場合があります。
3. クラス (不正 | 非不正)
プロットから、大部分のトランザクションは不正ではなく (クラス 0)、比較的少数のトランザクションは不正である (クラス 1) ため、データセットが非常に不均衡であることがわかります。これは、データセットにクラスの不均衡の問題があり、このデータセットでトレーニングされたモデルのパフォーマンスに影響を与える可能性があることを示しています。不正検出のモデルを構築するときに、クラスの不均衡の問題を処理するには、オーバーサンプリング、アンダーサンプリング、クラスの重み付けなどの手法を使用することが必要になる場合があります。
Ⅲ.情報処理
データに重大な共線性がないことを確認するために、ヒートマップが使用されました。
ヒートマップから、データセット内の変数のペア間に強い正または負の相関関係がないことが観察できます。最も強い相関関係が見つかります。
- 時間と V3、相関係数は -0.42
- 金額と V2、相関係数 -0.53
- 金額と V4、相関係数は 0.4。
IV. モデリング
「Credit Card Fraud Detection」データセットには、不正かどうかのラベルが付けられたクレジット カード取引が含まれています。データセットは不均衡であるため、不正ではないトランザクションに誤ってフラグを付けることなく、不正なトランザクションを正確に検出できるモデルが必要です。
分類の問題を解決するために、StandardScaler はデータに平均 0、標準偏差 1 を与えて標準化します。これにより、正規分布が得られます。このテクニックは、さまざまな量と時間を扱う場合に効果的です。データをスケーリングするには、トレーニング セットを使用して近似を初期化し、トレーニング セット、検証セット、およびテスト セットをモデルに実行する前にスケーリングします。
データセットは、トレーニング用に 60%、検証用に 20%、テスト用に 20%に分割されました。不均衡なデータセットのバランスをとるために、ランダム アンダーサンプリングを使用して不正なトランザクションの数を一致させました。ロジスティック回帰モデルとランダム フォレスト モデルが使用され、良好な結果が得られました。
「クレジット カード不正検出」データセットで一般的に使用されるモデルは、ロジスティック回帰、単純ベイズ、ランダム フォレスト、およびダミー分類子です。
- ロジスティック回帰は、解釈可能で大規模なデータセットを処理できるため、不正行為の検出に広く使用されています。
- Naive Bayes は、多数の特徴を持つデータセットを処理でき、高速な予測を提供できるため、不正行為の検出によく使用されます。
- ランダム フォレストは複雑なデータセットを処理でき、過剰学習が起こりにくいため、不正行為の検出によく使用されます。
- ダミー分類子は、他のモデルのパフォーマンスを比較するためのベンチマークとして使用される単純なアルゴリズムです。
V. モデルの評価
このセクションでは、精度、再現率、精度、および F1 スコアの指標について説明します。
- 精度は、モデルが行う正しい予測の割合です。ただし、不均衡なデータセットの場合は誤解を招く可能性があります。
- Recall は、モデルが正しく特定した不正取引の割合を示します。最良のモデルでは再現率は 89.9% であり、これは適切な出発点です。
- 精度により、予測された不正取引の何パーセントが実際に不正であったかがわかります。最良のモデルでは、すべての不正取引の 97.8% が捕捉されており、これは優れた指標です。
- F1 スコアは、偽陽性と偽陰性を考慮して、再現率と適合率を 2 つの加重平均として 1 つの指標に組み合わせます。不均衡なクラスの場合は、精度よりもはるかに効果的です。
1.ROCスコア
ROC は、さまざまなしきい値で分類パフォーマンスを測定します。AUC スコア (曲線下面積) が高いほど、モデルの不正/非不正の予測が優れていることを意味します。
ROC 曲線: マーケティングにおける不正検出の強力なツールグラフは、ロジスティック回帰とランダム フォレストの AUC スコアを示しています。ハイスコアは良いことです。曲線上の点はしきい値を表します。右に移動すると、より多くの真陽性が捕捉されますが、より多くの偽陽性も捕捉されます。理想的なしきい値は、ロジスティック回帰では 0.842、ランダム フォレストでは 0.421 です。これらのしきい値では、誤検知を低く抑えながら、最適な量の不正トランザクションを捕捉します。混同マトリックスは、各モデルの効果を視覚化できます。
2. 混同行列 — ロジスティック回帰
このモデルは、サンプル外のテスト セットのしきい値 0.842 を使用して、98 件の不正取引のうち 88 件を捕捉し、1,678 件の通常の取引を不正としてマークしました。これは、カードが別の州で使用された後、事前の通知なしに銀行が確認テキストを送信する状況に似ています。
3. 混同行列 — ランダムフォレスト
しきい値 0.421 では、ランダム フォレスト モデルはロジスティック回帰モデルと同様に機能します。98 件の不正取引のうち 88 件を正確に識別しますが、ロジスティック回帰モデルと比較して正常な取引の減少にも不正としてフラグを立てます。全体として、どちらのモデルも優れたパフォーマンスを持っています。
結論
不正なクレジット カード取引を検出することは、今日の社会において非常に重要です。企業はさまざまな方法を使用してこれらのインスタンスをキャプチャしており、これにどのように対処するかを見るのは興味深いことです。異常を見つけるのは楽しいので、このプロジェクトを進めるのはとても楽しかったです。調査結果がうまく説明できたことを願っています。読んでいただきありがとうございます。
参考文献
- Kaggle プロジェクト —こちら
- Github リポジトリ —こちら
- Kaggle データセット —こちら
- 続きを読む —
クレジット カード詐欺検出のための再現可能な機械学習 — 実践ハンドブック
記事に 50 回拍手を送りましょう
フォローしてください
Mediumの記事をもっと読む
ソーシャルメディアでつながるGithub | リンクトイン| カグル
#クレジットカード不正検出 #データサイエンス #機械学習 #不正防止 #データ分析