## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ## ----setup-------------------------------------------------------------------- library(cyclicwave) data(steel_industry) ## ----------------------------------------------------------------------------- data_thin <- thin_data(steel_industry, step = 10) numeric_data <- select_numeric_columns(data_thin) data_scaled <- normalize_features(numeric_data, method = "zscore") dim(data_scaled) ## ----------------------------------------------------------------------------- true_labels <- label_by_quantile(data_thin$Usage_kWh, probs = c(1/3, 2/3)) table(true_labels) ## ----------------------------------------------------------------------------- feature_methods <- list( pca_only = function(d) { pca <- prcomp(d, center = FALSE, scale. = FALSE) pca$x[, 1:3] }, pca_circular = function(d) { pca <- prcomp(d, center = FALSE, scale. = FALSE) phase <- compute_phase(d, axis = "feature") circ <- extract_circular_features(phase) cbind(pca$x[, 1:3], circ) } ) ## ----------------------------------------------------------------------------- cluster_methods <- list( dbscan_loose = list(fn = run_dbscan, params = list(eps = 0.5, min_pts = 8)), dbscan_tight = list(fn = run_dbscan, params = list(eps = 0.3, min_pts = 5)) ) ## ----------------------------------------------------------------------------- comparison <- compare_methods( data = data_scaled, feature_methods = feature_methods, cluster_methods = cluster_methods, metrics = c("dbi", "accuracy", "n_clusters", "n_noise"), true_labels = true_labels, normalize = NULL, verbose = FALSE ) print(comparison)