機械学習のケーススタディ: クレジットカード詐欺検出

機械学習のケーススタディ: クレジットカード詐欺検出

私は51CTOアカデミー講師の唐玉迪です。51CTOアカデミーの「4.20 ITリチャージフェスティバル」(4月19日〜20日)を機に、機械学習の事例における私の実践経験を皆さんと共有したいと思います。本文はここです〜〜〜

ストーリーの背景:元のデータは個人の取引記録ですが、データ自体のプライバシーを考慮して、元のデータは PCA に似た処理がされています。特徴データが抽出されたので、次の目標は、最高の検出効果を実現するモデルを構築することです。ここではデータに対して特徴抽出を実行する必要はありませんが、私たちが直面する課題はまだかなり大きいです。

データ分析とモデリングは肉体労働ではありません。時間はお金です (World of Warcraft のプレイヤーは皆これを知っています!)。Python を使用してデータを操作する場合は、これらが核兵器になります。この友達たちを簡単に紹介しましょう!

Numpy-Scientific Computing Library は主に行列演算に使用されます。えっ?行列がどこで使用されるかわかりません。では、このように考えてみましょう。データは行 (サンプル) と列 (特徴) で構成されているので、データ自体は行列ではないでしょうか?

Pandas - データ分析および処理ライブラリ多くの友人が、Python でデータを処理するのは簡単だと言いますが、その簡単さはどこにあるのでしょうか? 実際、Pandas を使用すると、1 行のコードで非常に複雑な操作を解決することもできます。

Matplotlib 可視化ライブラリ分析でもモデリングでも、優れたメモリに頼るだけでは不十分です。結果とプロセスを視覚的に表示する必要があります。

Scikit-Learn-Machine Learning ライブラリは、非常に実用的な機械学習アルゴリズム ライブラリであり、基本的に使用できると思われるすべての機械学習アルゴリズムが含まれています。しかし、それだけではありません。探索できる前処理および評価モジュールが多数あります。

まず、pandas を使用してデータを読み取り、最初の 5 行を表示します。ご覧のとおり、pandas でデータを読み取るのはとても簡単です。ここでのデータは、ユーザーのプライバシーなどを考慮して PCA によって処理されています。これで、データを処理済みの特徴として扱うだけです。

次に、データ サンプル内のどれが不正であるかを検出することが私たちの主な目標です。

この分類問題をモデル化するために機械学習アルゴリズムを急いで使用しないでください。まず、データの分布を見てみましょう。データ サンプルには、クラス 0 が通常の状態を表し、クラス 1 が不正行為が発生したサンプルを表すことを指定する明確なラベル列があります。これは上の写真からわかります。 。 。ちょっと待ってください、ケースは 2 つあると言っていませんでしたか? グラフにはクラス 0 のサンプルだけがあるのはなぜですか? よく見てください。 。 。クラス 1 のサンプルがないわけではありませんが、サンプルが少なすぎて、基本的に見えないほどです。現在、私たちは新たな課題に直面しています。サンプルが極端に不均衡です。次に、まずこの問題を解決する必要があります。これは非常に一般的で厄介な問題です。

ここでは、データ分析で最も一般的に使用される 2 つの方法であるダウンサンプリングとオーバーサンプリングという 2 つのソリューションを提案します。

まず弱点を取り上げましょう。ダウンサンプリングは実装が比較的簡単なので、まずは最初の解決策に取り組みましょう。ダウンサンプリングとは、2 種類のデータが不均衡になることを意味します。そのため、私はあなたのデータを同じだけ小さくします (つまり、1 の数が同じ数の 0 に減らされます)。これでバランスが取れているのではないでしょうか。

実装方法は非常に簡単です。0に属するデータで、クラス1と同じ数のサンプルをランダムに選択します。これで、非常に小さなデータの2つのグループが取得され、次にモデルを構築できます。ただし、機械学習モデルを構築する前に、データセットをトレーニングセットとテストセットに分割するという一般的な操作を忘れないでください。これにより、その後の検証結果の信頼性が高まります。

ロジスティック回帰モデルのトレーニングでよく行われることは、モデルの場合、アルゴリズムを選択するときに調整するパラメータが多数あることです。そのため、最適なパラメータを見つける方法は簡単ではありません。経験に頼るのはあまり信頼できません。通常、多くの実験、つまり最終的にこれらの適切なパラメータを取得するまでの継続的な試行が必要になります。

異なる C パラメータに対応する最終モデルの効果:

Cパラメータ: 0.01

  • 反復 1: リコールスコア = 0.958904109589
  • 反復2: リコールスコア = 0.917808219178
  • 反復3: リコールスコア = 1.0
  • 反復4: リコールスコア = 0.972972972973
  • 反復5: リコールスコア = 0.954545454545
  • 平均再現スコア 0.960846151257

Cパラメータ: 0.1

  • 反復 1: リコールスコア = 0.835616438356
  • 反復2: リコールスコア = 0.86301369863
  • 反復3: リコールスコア = 0.915254237288
  • 反復4: リコールスコア = 0.932432432432
  • 反復5: リコールスコア = 0.878787878788
  • 平均再現スコア 0.885020937099

Cパラメータ: 1

  • 反復 1: リコールスコア = 0.835616438356
  • 反復2: リコールスコア = 0.86301369863
  • 反復3: リコールスコア = 0.966101694915
  • 反復4: リコールスコア = 0.945945945946
  • 反復5: リコールスコア = 0.893939393939
  • 平均再現スコア 0.900923434357

Cパラメータ: 10

  • 反復 1: リコールスコア = 0.849315068493
  • 反復2: リコールスコア = 0.86301369863
  • 反復3: リコールスコア = 0.966101694915
  • 反復4: リコールスコア = 0.959459459459
  • 反復5: リコールスコア = 0.893939393939
  • 平均再現スコア 0.906365863087

Cパラメータ: 100

  • 反復 1: リコールスコア = 0.86301369863
  • 反復2: リコールスコア = 0.86301369863
  • 反復3: リコールスコア = 0.966101694915
  • 反復4: リコールスコア = 0.959459459459
  • 反復5: リコールスコア = 0.893939393939
  • 平均再現スコア 0.909105589115
  • クロス検証から選択する最適なモデルは、Cパラメータ = 0.01です。

機械学習アルゴリズムを使用する場合、パラメータの調整は非常に重要な部分です。ここでは、最も古典的な分類アルゴリズムであるロジスティック回帰を使用することを選択します。ロジスティック回帰を回帰アルゴリズムと考えないでください。これは最も実用的なバイナリ分類アルゴリズムです。ここで考慮する必要がある c パラメータは、正規化ペナルティ項の強度です。では、最適なパラメータを選択するにはどうすればよいでしょうか。ここでは、クロス検証が必要であり、異なる C パラメータを使用して同じデータを実行します。目的は、どのような C パラメータを使用すると、最終モデルが最適に機能するかを確認することです。さまざまなパラメータが最終結果に大きな影響を与えることがわかります。ここでの最良の方法は、検証セットを使用してそれを見つけることです。

モデルは構築されましたが、どのモデルが良くて、どのモデルが良くないかをどのように判断すればよいのでしょうか。ここは慎重に考える必要があります。

これは通常、精度、つまり正確度と呼ばれるもので測定されます。しかし、考えてみましょう。私たちの目的は何でしょうか? 異常なサンプルを検出することでしょうか? たとえば、病院から 1,000 人の患者の中から癌患者を検出するというタスクが与えられたとします。つまり、データセットには癌に罹っていない人が 990 人いて、癌に罹っている人は 10 人だけだとします。この 10 人を検出する必要があります。精度を基準として使用すると、これらの 10 人が検出されなかったとしても、精度は 990/1000、つまり 99% になりますが、このモデルには価値がありません。これは非常に重要です。評価方法が異なると、異なる答えが得られるからです。問題の性質に基づいて、最も適切な評価方法を選択する必要があります。

同様に、ここではリコールを使用してモデルの品質、つまり異常なサンプルがいくつ検出されたかを計算します。これも本来の目的です。ここでは、それを示すために混同行列がよく使用されます。

この図はとても美しいですね!(絵が上手いというわけではありませんが、非常に直接的です。)この図から、元のデータ内のサンプルの分布とモデルの予測結果が明確にわかります。では、再現率はどのように計算されるのでしょうか?検出したサンプル数(137)を異常なサンプルの総数(10+137)で割り、この値を使用してモデルを評価します。混同行列を使用すると、モデルの精度と再現率を視覚的に調べることができます。また、モデルを評価するときにこのグラフを表示して、現在のモデルの効果と存在する問題を視覚的に確認することを強くお勧めします。

これで話は終わりではありません。ダウンサンプリングされたデータセットでテストしたばかりなので、このテストは元のテスト セットではないため、完全に信頼できるものではありません。元の大規模なテスト セットで現在のモデルの有効性を再度測定する必要があります。実際には効果がかなり良いことがわかりますが、問題は何でしょうか? 誤って多くのサンプルを削除してしまったのでしょうか? 一部のサンプルは異常ではありませんが、誤って異常とみなしました。 この現象は、実際にはダウンサンプリング戦略自体の欠陥です。

ロジスティック回帰アルゴリズムの場合、最終結果の確率が、それを陽性サンプルまたは陰性サンプルと見なす度合いよりも大きいというしきい値を指定することもできます。未使用のしきい値は結果に大きな影響を与える可能性があります。

上の図では、異なるしきい値の影響が非常に大きいことがわかります。しきい値が小さいということは、モデルが非常に厳格であり、誤って破棄するよりも破棄する傾向があることを意味します。これにより、ほとんどのサンプルが異常なサンプルとして扱われ、再現率は高くなりますが、精度はわずかに低くなります。しきい値が大きい場合、モデルはわずかに緩くなり、再現率が低くなり、精度がわずかに高くなります。要約すると、ロジスティック回帰アルゴリズムを使用する場合は、実際のアプリケーション シナリオに応じて最も適切なしきい値を選択する必要もあります。

ダウンサンプリング戦略について説明した後、オーバーサンプリング戦略について説明を続けます。ダウンサンプリングとは対照的に、ここでの戦略はクラス 0 とクラス 1 のサンプル数を同じにすることです。つまり、データを生成する必要があります。

SMOTE アルゴリズムは、非常に広く使用されているデータ生成戦略です。プロセスは上の図で参照できます。非常にシンプルです。次に、既製のライブラリを使用して、オーバーサンプリング データ生成戦略を完了します。

ほんの数ステップで、オーバーサンプリング戦略が完了しました。これで、陽性サンプルと陰性サンプルの数はそれぞれ 200,000 を超え、同じ数になりました。混同行列を見て、オーバーサンプリングされたサンプルに適用されたロジスティック回帰の効果を確認しましょう。データ強化の応用範囲は非常に広く、多くの機械学習やディープラーニングの問題では、これが日常的になっています。

ダウンサンプリングとオーバーサンプリングの効果を比較してみましょう。リコール効果は良好で、どちらも異常なサンプルを検出できると言えますが、ダウンサンプリングの方が誤検出が少ないです。そのため、データを生成できれば、アンバランスなサンプルデータの場合は、オーバーサンプリングは試すことができる解決策です。

要約: 機械学習の場合、データには多くの課題や問題が伴うことは間違いありません。そのため、最も重要なのは、この一連の問題をどのように解決するかということです。専門家は私たちよりもコードを書くのが上手ではないかもしれませんが、問題を解決する方法は非常によく知っています。今日は、検出タスクを背景とした事例についてお話ししました。サンプルの不均衡の問題への対処方法とモデル評価の選択方法についてです。最後に、異なるしきい値でのロジスティック回帰の結果を示しました。ここでも、学生が事例を通してより多くの経験を積み、できるだけ早く専門家になれることを願っています。

今回は、そのような不均衡検出のサンプルケースを皆さんと共有します。よりエキサイティングなコンテンツについては、私のビデオコースに参加してください。さらに多くのドライグッズがあなたの参加を待っています!

51CTOアカデミー4.20 ITチャージングフェスティバル

(19日と20日は、100本のビデオコースが無料で受講でき、会員はビデオコースを40%割引で受講でき、非会員は30%割引、パッケージはさらに20%割引、マイクロジョブは2,000元の大幅割引をお楽しみいただけます)

アクティビティリンク: http://edu..com/activity/lists/id-47.html?wenzhang

関連するライブチュートリアル:

「ワンストップ Python データ分析と機械学習トレーニング キャンプ ライブ ステーション」

<<:  2万本の論文が過去5年間の機械学習の変遷を物語る

>>:  データ分析 機械学習 タイタニック号事件 - 裁判

ブログ    
ブログ    
ブログ    

推薦する

...

メールはAIの恩恵を受け、よりスマートになり、自動的にデータを促し、エラーを報告する

電子メールは日ごとに賢くなってきています。 Gmail では宛先不明の受信者を報告でき、Google...

インターネット技術起業家は、2 つのセッションで提案を行う際にどのような点に重点を置いていますか?

[[258735]] 3月3日、毎年恒例の全国「両会」が正式に始まりました。「両会」シーズンが始ま...

...

AIディープフェイク技術の2つの側面

著者 | 李世馨翻訳者 | 朱 仙中編纂者:Qianshan人工知能に関する議論にはしばしば論争が伴...

顔を自由に編集! Adobe が新世代の GAN アーティファクトを発表: 最大 35 の顔属性の変更をサポート

画像合成における重要な問題は、画像内のエンタングルメント問題です。たとえば、人物の顔にあるすべてのひ...

Daguan 推奨アルゴリズムの実装: 協調フィルタリングのアイテム埋め込み

レコメンデーションシステムの本質は、ユーザーのニーズが不明確な場合の情報過多の問題を解決し、ユーザー...

SQLにおける機械学習の詳細な説明

ML 以前の世界が存在していたことを信じられないこともあります。現代のデータ分析の多くは ML 技術...

Alibaba の軽量オープンソース Web サーバー Tengine 負荷分散アルゴリズム

序文Alibaba レイヤー 7 トラフィック エントリ アクセス レイヤー (アプリケーション ゲ...

クラウド AI とエッジ AI: 2022 年にはどちらがより良い選択でしょうか?

エッジ AI とクラウド AI は、現在企業が使用している最も重要なテクノロジーの一部であることがわ...

2024年の最大の落とし穴は?ディープラーニングに基づくエンドツーエンドの自動運転の最新レビュー

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...