始める無料で始める

自然発生的なヒット率

この演習では、再びクレジットカードの取引データを使います。特徴量とラベルは前の章と同様で、データは強く不均衡です。すでに特徴量 X とラベル y を用意してあり、どちらも NumPy 配列です。

まずは、もしすべてを非不正(non-fraud)と予測した場合の 「自然な正解率(natural accuracy)」 を把握するために、データセット内で不正がどの程度発生しているかを確認します。何もしない場合よりも良い予測を得るには、どの水準の「正解率」を上回る必要があるかを理解することが重要です。続く演習では、不正検知のための最初のランダムフォレスト分類器を作成します。これは今後の演習で改善を目指す「ベースライン」モデルとして使います。

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

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • ラベル y の長さを取り、観測数の合計を数えます。
  • y に対してリスト内包表記を使い、非不正(non-fraud)の件数を数えます。y は NumPy 配列なので、この場合は .value_counts() は使えない点に注意してください。
  • 非不正の件数を総観測数で割り、自然な正解率を計算します。
  • パーセンテージを出力(print)します。

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

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

# Count the total number of observations from the length of y
total_obs = ____

# Count the total number of non-fraudulent observations 
non_fraud = [i for ____ ____ ____ if i == 0]
count_non_fraud = non_fraud.count(0)

# Calculate the percentage of non fraud observations in the dataset
percentage = (float(____)/float(____)) * 100

# Print the percentage: this is our "natural accuracy" by doing nothing
____(____)
コードを編集して実行