ロバスト z スコアを計算する
Chapter 1 で使用したデータセット transfers をもう一度見てみましょう。
このデータセットには 222 件の取引が含まれ、変数 fraud_flag が 1 のものとして示された既知の不正が 4 件あります。頻度(frequency)と最新性(recency)の特徴量はすでに学習しました。
今回は変数 amount のみに注目し、この変数に対して単変量の外れ値検出手法を適用して不正を検知してみます。
データセットの構造を思い出したいときは、必要に応じてコンソールで探索してみてください。前の動画で紹介した関数は、スライドも参照できます。
この演習はコースの一部です
Rで学ぶ不正検知
演習の手順
- どの観測値が不正と判定されるか確認しましょう。
- 変数
amountの中央値と中央値絶対偏差(mad)を計算しましょう。 - 位置と分散のロバスト推定値を使って、各観測値のロバスト z スコアを計算しましょう。
- 絶対値で 3 を超えるロバスト z スコアを持つ観測値はどれですか?
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Get observations identified as fraud
which(___ == ___)
# Compute median and mean absolute deviation for `amount`
m <- median(___)
s <- ___(___)
# Compute robust z-score for each observation
robzscore <- abs((___ - ___) / (___))
# Get observations with robust z-score higher than 3 in absolute value
which(abs(___) > ___)