## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) load("../R/sysdata.rda") ## ----setup-------------------------------------------------------------------- library(fdacluster) true_groups <- c(rep(1, 20), rep(2, 10)) ## ----eval=FALSE--------------------------------------------------------------- # out_manual <- fdakmeans( # x = simulated30$x, # y = simulated30$y, # n_clusters = 2, # seeds = c(1, 21), # warping_class = "affine", # centroid_type = "mean", # metric = "normalized_l2", # cluster_on_phase = FALSE, # use_verbose = FALSE # ) ## ----------------------------------------------------------------------------- knitr::kable(table(out_manual$memberships, true_groups)) ## ----eval=FALSE--------------------------------------------------------------- # withr::with_seed(1234, { # initial_seeds <- replicate(10, sample.int(30, 2, replace = FALSE), simplify = FALSE) # outs_manual <- lapply(initial_seeds, \(.seeds) { # fdakmeans( # x = simulated30$x, # y = simulated30$y, # n_clusters = 2, # seeds = .seeds, # warping_class = "affine", # centroid_type = "mean", # metric = "normalized_l2", # cluster_on_phase = FALSE, # use_verbose = FALSE # ) # }) # }) ## ----------------------------------------------------------------------------- tibble::tibble( Initialization = initial_seeds |> sapply(\(.seeds) paste(.seeds, collapse = ",")), `Misclassification Rate (%)` = sapply(outs_manual, \(.clus) { tbl <- table(.clus$memberships, true_groups) round(min(tbl[1, 1] + tbl[2, 2], tbl[1, 2] + tbl[2, 1]) / 30 * 100, 2) }) ) |> knitr::kable() ## ----eval=FALSE--------------------------------------------------------------- # withr::with_seed(1234, { # outs_kpp <- replicate(10, { # fdakmeans( # x = simulated30$x, # y = simulated30$y, # n_clusters = 2, # seeding_strategy = "kmeans++", # warping_class = "affine", # centroid_type = "mean", # metric = "normalized_l2", # cluster_on_phase = FALSE, # use_verbose = FALSE # ) # }, simplify = FALSE) # }) ## ----------------------------------------------------------------------------- tibble::tibble( Run = 1:10, `Misclassification Rate (%)` = sapply(outs_kpp, \(.clus) { tbl <- table(.clus$memberships, true_groups) round(min(tbl[1, 1] + tbl[2, 2], tbl[1, 2] + tbl[2, 1]) / 30 * 100, 2) }) ) |> knitr::kable() ## ----eval=FALSE--------------------------------------------------------------- # withr::with_seed(1234, { # outs_ekpp <- replicate(10, { # fdakmeans( # x = simulated30$x, # y = simulated30$y, # n_clusters = 2, # seeding_strategy = "exhaustive-kmeans++", # warping_class = "affine", # centroid_type = "mean", # metric = "normalized_l2", # cluster_on_phase = FALSE, # use_verbose = FALSE # ) # }, simplify = FALSE) # }) ## ----------------------------------------------------------------------------- tibble::tibble( Run = 1:10, `Misclassification Rate (%)` = sapply(outs_ekpp, \(.clus) { tbl <- table(.clus$memberships, true_groups) round(min(tbl[1, 1] + tbl[2, 2], tbl[1, 2] + tbl[2, 1]) / 30 * 100, 2) }) ) |> knitr::kable() ## ----eval=FALSE--------------------------------------------------------------- # out <- fdakmeans( # x = simulated30$x, # y = simulated30$y, # n_clusters = 2, # seeding_strategy = "hclust", # warping_class = "affine", # centroid_type = "mean", # metric = "normalized_l2", # cluster_on_phase = FALSE, # use_verbose = FALSE # ) ## ----------------------------------------------------------------------------- knitr::kable(table(out_hclust$memberships, true_groups))