機械学習における不正検出:知っておくべきこと[2022]
公開: 2021-01-02食品、衣服、アクセサリー、または家具。 にぎやかな道路の店で購入していたものはすべて、オンラインで購入できるようになりました。 Eコマースは数十億ドル規模の業界であり、ますます成長しているだけです。 言うまでもなく、これも犯罪の世界を掌握している。 オンライン犯罪者は、名前を付けることができるすべてのオンラインセクターに存在します。
モデルが過去の不正データから学習してパターンを認識し、将来のトランザクションの正当性を予測できるため、機械学習による不正検出が可能です。 ほとんどの場合、情報処理の速度と効率のために、人間よりも効果的です。
インターネット詐欺の種類には次のものがあります。
- ID偽造。 現在、IDは非常によく作成されているため、人間がその正当性を検証してID詐欺を防止することはほとんど不可能です。
AIを使用することで、IDカードの外観のさまざまな機能を分析して、ドキュメントの信頼性に関する結果を得ることができます。 これにより、企業は、特定のIDドキュメントを必要とする要求が行われたときに、セキュリティに関する独自の基準を確立できます。
- 銀行ローン詐欺。 これらは、誰かがあなたに連絡し、疑わしいほど有利な条件でローンスキームを提供した場合に発生する可能性があります。 ここであなたに連絡する人は、適切な会社情報を持っていなくても、あるいは国際的な連絡先番号を使用せずに、あなたの銀行の詳細または前払いを求めます。 このような詐欺は、以前のローン申請レコードを使用してAIがローンの不履行者を除外することで、簡単に処理できます。
- メールフィッシング。 これは一種のサイバー犯罪であり、偽のサイトやメッセージがユーザーに宣伝され、個人データの共有を求められます。 注意を怠ると、機密データを入力して脅威に対して脆弱にする可能性があります。 この詐欺を回避する最善の方法は、ユーザーが自分自身に注意することですが、AIは、回帰などの基本的な機械学習アルゴリズムを使用して詐欺メールをフィルタリングすることで、詐欺メールを見つけることができます。
- クレジットカード詐欺。 これは、最も一般的なタイプの支払い詐欺です。 これは、すべての詳細がオンラインに保存されているため、犯罪者やハッカーが簡単にアクセスできるためです。 郵便で送られたカードも簡単に傍受される可能性があります。 機械学習を使用してこのような不正取引をフィルタリングする1つの方法について、以下で説明します。
- 個人情報の盗難。 個人情報の盗難を検出するための機械学習は、パスポート、PANカード、運転免許証などの貴重な身分証明書をリアルタイムで確認するのに役立ちます。 さらに、セキュリティをさらに向上させるために、生体情報が必要になる場合があります。 これらのセキュリティ方法には、不正の可能性を大幅に減らす対面認証が必要です。
また読む:インドの機械学習エンジニアの給与
クレジットカードデータを使用して不正を予測するモデル
ここでは、非常に有名なKaggleデータセットを使用して、単純なニューラルネットワークモデルを使用して不正検出がどのように機能するかを示しています。

輸入:
パンダをpdとしてインポートします
numpyをnpとしてインポートします
tensorflowをtfとしてインポートします
ケラスをインポートする
sklearn.preprocessingからインポートStandardScaler
keras.modelsからインポートシーケンシャル
keras.layersからDenseをインポートします
sklearn.model_selectionからimporttrain_test_split _
sklearn.metricsからimportclassification_report _
こちらのデータセットをご覧ください。 [金額]列は他のすべての機能と同様に正規化され、[時間]列は無関係であるため削除されます。
data = pd.read_csv ( 'creditcard.csv' )
data [ 'Amount_norm' ] = StandardScaler () .fit_transform ( data [ 'Amount' ] .values.reshape ( -1、1 ) )
data = data.drop ([ 'Amount' ]、 axis = 1 )
data = data.drop ([ 'Time' ]、 axis = 1 )
data = data [: -1 ]
data.info()
データをクリーンアップした後、データセットには合計28の機能と1つのターゲットが含まれ、すべて空ではないfloat値が含まれています。

私たちのターゲットは、特定のクレジットカード取引が詐欺であるかどうかを判断するクラス列です。 したがって、データセットはそれに応じてトレインとテストに分割され、通常の80:20の分割比率が維持されます。 ( random_stateは、分割データの再現に役立つように修正されています)
X = data.iloc [:、 data.columns!= 'クラス' ]
y = data.iloc [:、 data.columns== 'クラス' ]
X_train 、 X_test 、 y_train 、 y_test = train_test_split ( X 、 y 、 test_size = 0.2 、 random_state = 0 )
kerasライブラリのシーケンシャルモデルを使用して、3つの高密度層を持つニューラルネットワークを構築します。 出力層には、シグモイド関数を使用して正のクラスまたは負のクラスのいずれかを生成する単一のニューロンのみが含まれます。
次に、モデルはadamoptimizerを使用してコンパイルされますが、各レイヤーのユニット数、アクティベーション、オプティマイザーなど、ハイパーパラメーターのさまざまな値を自分で試して、特定の場合に最適なものを確認することを強くお勧めします。データセット。
model = Sequential ()
model.add ( Dense ( units = 16 、 activation = 'relu' 、 input_dim = 29 ))
model.add ( Dense ( units = 16 、 activation = 'relu' ))
model.add ( Dense ( units = 1 、 activation = 'sigmoid' ))
モデル。 コンパイル( optimizer = 'adam' 、 loss = 'binary_crossentropy' 、 metrics = [ 'accuracy' ])
model.fit ( X_train 、 y_train 、 batch_size = 32 、エポック= 15 )
これは、モデルを数エポック実行した後の結果です。
このモデルでは、99.97%の精度が非常に高速であることがわかります。 以下に、 y_predには、テストデータに対してモデルによって行われた予測が含まれており、そのパフォーマンスの簡潔な要約が示されています。
y_pred = model.predict ( X_test )

y_pred = ( y_pred> 0.5 )
print ( classification_report ( y_test 、 y_pred ))
読む:初心者のための機械学習プロジェクトのアイデア
結論
このようにして、不正取引を特定するための非常に正確なモデルを構築することに成功しました。 これらは、リスク管理の目的で非常に便利です。
機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのPGディプロマをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題、IIIT-を提供します。 B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。