R में Fraud Detection
Bart Baesens
Professor Data Science at KU Leuven
head(timestamps)
"20:27:28" "21:08:41" "01:30:16" "00:57:04" "23:12:14" "22:54:16"
library(lubridate) ts <- as.numeric(hms(timestamps)) / 3600head(ts)
20.4577778 21.1447222 1.5044444 0.9511111 23.2038889 22.9044444
library(ggplot2) clock <- ggplot(data.frame(ts), aes(x = ts)) + geom_histogram(breaks = seq(0, 24), colour = "blue", fill = "lightblue") + coord_polar()arithmetic_mean <- mean(ts) clock + geom_vline(xintercept = arithmetic_mean, linetype = 2, color = "red", size = 2)

$$D\sim vonMises\left(\mu,\kappa\right)$$
# दशमलव टाइमस्टैम्प को "circular" क्लास में बदलें library(circular) ts <- circular(ts, units = "hours", template = "clock24")head(ts)
Circular Data:
[1] 20.457889 21.144607 1.504422 0.950982 23.203917 4.904397
estimates <- mle.vonmises(ts)
p_mean <- estimates$mu %% 24
concentration <- estimates$kappa

(1) mle.vonmises() से $S$ पर आधारित $\mu(S)$ और $\kappa(S)$ का आकलन करें:
estimates <- mle.vonmises(ts)
p_mean <- estimates$mu %% 24
concentration <- estimates$kappa
(2) dvonmises() से टाइमस्टैम्प की density (= likelihood) निकालें:
densities <- dvonmises(ts, mu = p_mean, kappa = concentration)
TRUE है यदि टाइमस्टैम्प CI के भीतर है, अन्यथा FALSEalpha <- 0.90 quantile <- qvonmises(p = (1 - alpha)/2, mu = p_mean, kappa = concentration) %% 24 cutoff <- dvonmises(quantile, mu = p_mean, kappa = concentration)time_feature <- densities >= cutoff


$$
$$

## ts में टाइमस्टैम्प 18.42, 20.45, 20.88, 0.75, 19.20, 23.65 और 6.08 हैंtime_feature = c(NA, NA) for (i in 3:length(ts)) { ts_history <- ts[1:(i-1)] ## (1) पिछले टाइमस्टैम्पestimates <- mle.vonmises(ts_history) ## (2) ऐतिहासिक टाइमस्टैम्प पर mu और kappa का आकलन p_mean <- estimates$mu %% 24 concentration <- estimates$kappadens_i <- dvonmises(ts[i], mu = p_mean, kappa = concentration) ## (3) मौजूदा टाइमस्टैम्प की density का आकलनalpha <- 0.90 ## (4) जाँचें: 90% कॉन्फिडेंस लेवल पर density cutoff से बड़ी है या नहीं quantile <- qvonmises((1-alpha)/2, mu=p_mean, kappa=concentration) %% 24 cutoff <- dvonmises(quantile, mu = p_mean, kappa = concentration) time_feature[i] <- dens_i >= cutoff }print(time_feature)
NA NA TRUE FALSE TRUE TRUE FALSE
R में Fraud Detection