始める無料で始める

1つの口座に対する頻度特徴量

頻度特徴量は、過去に特定のイベントがどのくらい起きたかを数えるものです。こうした特徴量を作ると、異常な振る舞いの検知に役立ちます。動画では、カテゴリ変数をもとに頻度特徴量を作る方法を学びました。

ここでは Bob の取引データが与えられています。channel_cd という列は、各取引で Bob が使用した支払いチャネルを表します。rollapply() 関数を使って、channel_cd 列に基づく freq_channel という頻度特徴量を作成しましょう。関数のドキュメントはコンソールで ?rollaply を参照できます。

ワークスペースにはデータセット trans_Bob、パッケージ zoodplyr が読み込まれています。

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

Rで学ぶ不正検知

コースを見る

演習の手順

  • frequency_fun() という関数を作成します。入力は stepschannel とし、steps の数を数え、直近の channel が過去に何回使われたかを合計します。
  • transfer_id 列に対して rollapply を使い、特徴量 freq_channel を作成します。この特徴量は、ある channel_cd がそれ以前に何回使われたかを数えるものです。
  • channel_cdfreq_channelfraud_flag の各特徴量を表示します。新しく作成した特徴量を確認しましょう。

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

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

# Frequency feature based on channel_cd
frequency_fun <- function(steps, channel) {
  n <- ___(___)
  frequency <- ___(___[1:n] == ___[___])
  return(frequency)
}

# Create freq_channel feature
freq_channel <- ___(trans_Bob$___, width = list(-1:-length(trans_Bob$___)), partial = ___, FUN = ___, trans_Bob$___)

# Print the features channel_cd, freq_channel and fraud_flag next to each other
freq_channel <- c(0, freq_channel)
cbind.data.frame(trans_Bob$___, ___, trans_Bob$fraud_flag)
コードを編集して実行