始める無料で始める

不正を見つける昔ながらのアプローチを試す

この演習では、クレジットカードのデータセットから「昔ながら」のやり方で不正検知に挑戦します。まず、一般的な統計量を使ってしきい値を定義し、不正と正常を分けます。次に、そのしきい値を特徴量に適用して不正を検出します。これは多くの不正分析チームで一般的に行われている方法です。

統計的なしきい値は、観測値の平均を見て決められることがよくあります。最初に、特徴量の平均が不正と正常のケースで異なるかを確認しましょう。そのうえで、その情報を使って常識的なしきい値を作成します。最後に、この方法が不正検知でどの程度うまく機能するかを確認します。

pandas はすでに pd としてインポートされています。

この演習はコースの一部です

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • groupby() を使って dfClass ごとにグループ化し、特徴量の平均を取得します。
  • 不正フラグの条件として、V1 が -3 未満、かつ V3 が -5 未満という条件を作成します。
  • 性能評価として、pandascrosstab 関数を使い、フラグ付けした不正ケースと実際の不正ケースを比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Get the mean for each group
____.____(____).mean()

# Implement a rule for stating which cases are flagged as fraud
df['flag_as_fraud'] = np.where(np.logical_and(______), 1, 0)

# Create a crosstab of flagged fraud cases versus the actual fraud cases
print(____(df.Class, df.flag_as_fraud, rownames=['Actual Fraud'], colnames=['Flagged Fraud']))
コードを編集して実行