不正と正常の比率を確認する
この章では、クレジットカード取引データを含む creditcard_sampledata.csv を扱います。幸いにも、不正の発生はこれらの取引の中ではごく少数です。
しかし、Machine Learning のアルゴリズムは、データセットに含まれる各クラスの出現頻度がある程度均衡しているときに最も良く機能します。不正のケースが少ないと、識別方法を学習するためのデータが不足します。これはクラス不均衡として知られ、詐欺検知における主要な課題の一つです。
それでは、このデータセットを探索して、クラス不均衡の問題を観察していきましょう。
この演習はコースの一部です
Pythonで学ぶ不正検知
演習の手順
pandasをpdとしてインポートし、クレジットカードデータを読み込んでdfに代入します。これはすでに行ってあります。.info()を使ってdfの情報を表示します。.value_counts()を使って、'Class'列における不正取引と正常取引の件数を取得し、結果をoccに代入します。- データセット内の総取引件数に対する不正取引の比率を求めます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import pandas and read csv
import pandas as pd
df = pd.read_csv("creditcard_data.csv")
# Explore the features available in your dataframe
print(df.____)
# Count the occurrences of fraud and no fraud and print them
occ = df['____'].____()
print(occ)
# Print the ratio of fraud cases
print(occ / ____)