## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ## ----setup-------------------------------------------------------------------- library(cyclicwave) data(power_consumption) ## ----------------------------------------------------------------------------- dim(power_consumption) head(power_consumption, 3) ## ----------------------------------------------------------------------------- pwr <- power_consumption[1:1000, ] zones_matrix <- as.matrix(pwr[, 7:9]) ## ----------------------------------------------------------------------------- flat <- flatten_with_zones(zones_matrix) length(flat$values) table(flat$zones) ## ----------------------------------------------------------------------------- rolling <- rolling_stats(zones_matrix, window_size = 10, stats = c("mean", "sd")) ## ----------------------------------------------------------------------------- raw_features <- cbind( zone = flat$zones, value = flat$values, mavg = as.vector(rolling$mean), sd = as.vector(rolling$sd) ) head(raw_features, 3) ## ----------------------------------------------------------------------------- raw_features[, 2:4] <- normalize_features(raw_features[, 2:4], method = "zscore") ## ----kdist-plot--------------------------------------------------------------- plot_k_distance(raw_features[, 2:4], k = 7) ## ----------------------------------------------------------------------------- result <- run_dbscan(raw_features[, 2:4], eps = 0.3, min_pts = 7) result$n_clusters result$n_noise ## ----------------------------------------------------------------------------- davies_bouldin(raw_features[, 2:4], result$cluster) ## ----cluster-plot------------------------------------------------------------- plot_clusters_pca(raw_features[, 2:4], result$cluster)