Caratteristica di frequenza per un conto
Una caratteristica di frequenza conta quanto spesso un certo evento è avvenuto in passato. Creare questo tipo di caratteristiche aiuta a rilevare comportamenti anomali. Nel video, hai visto come creare una caratteristica di frequenza a partire da una variabile categorica.
Ora hai a disposizione i dati transazionali di Bob. Una delle colonne si chiama channel_cd e indica il canale di pagamento che Bob ha usato per registrare ciascuna transazione. Creerai una caratteristica di frequenza chiamata freq_channel basata sulla colonna channel_cd usando la funzione rollapply(). Puoi usare ?rollaply nella console per consultare la documentazione della funzione.
Il dataset trans_Bob e i pacchetti zoo e dplyr sono già caricati nel tuo workspace.
Questo esercizio fa parte del corso
Rilevamento delle frodi in R
Istruzioni dell'esercizio
- Scrivi una funzione
frequency_fun()che prenda in inputstepsechannel, conti il numero di passi e sommi quante volte ilchannelpiù recente è stato usato in passato. - Crea la caratteristica
freq_channelusando la funzionerollapplysulla colonnatransfer_id. La caratteristica deve contare quante volte uno specificochannel_cdè stato usato prima. - Stampa le caratteristiche
channel_cd,freq_channelefraud_flag. Esamina la nuova caratteristica creata.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)