CommencezCommencez gratuitement

Caractéristique de fréquence pour un compte

Une caractéristique de fréquence compte à quelle fréquence un certain événement s'est produit dans le passé. Créer ce type de caractéristiques aide à détecter des comportements anormaux. Dans la vidéo, vous avez appris à créer une caractéristique de fréquence à partir d'une variable catégorique.

On vous fournit maintenant des données transactionnelles de Bob. L'une des colonnes s'appelle channel_cd et indique le canal de paiement que Bob a utilisé pour chacune de ses transactions. Vous allez créer une caractéristique de fréquence appelée freq_channel à partir de la colonne channel_cd en utilisant la fonction rollapply(). Vous pouvez utiliser ?rollaply dans la console pour consulter la documentation de la fonction.

L'ensemble de données trans_Bob ainsi que les packages zoo et dplyr sont chargés dans votre espace de travail.

Cette activité fait partie du cours

Détection de la fraude en R

Voir le cours

Instructions de l’exercice

  • Écrivez une fonction frequency_fun() qui prend steps et channel en entrée, compte le nombre d'étapes et additionne le nombre de fois où le channel le plus récent a été utilisé dans le passé.
  • Créez la caractéristique freq_channel en utilisant la fonction rollapply sur la colonne transfer_id. Cette caractéristique doit compter le nombre de fois où un channel_cd donné a été utilisé auparavant.
  • Affichez les caractéristiques channel_cd, freq_channel et fraud_flag. Examinez la nouvelle caractéristique créée.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code