X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=epclust%2FR%2Fclustering.R;h=5b5f6684763321b1b854d0cdbc2de6bb2b8ded16;hb=074a48c472fcbdf99a36fae333dd8dbb568c06a0;hp=1774b19e686c657ea4a81768920d0ffc238bc8a7;hpb=3fb6e823601002c44ffbf913e83c8d24cfa1e819;p=epclust.git diff --git a/epclust/R/clustering.R b/epclust/R/clustering.R index 1774b19..5b5f668 100644 --- a/epclust/R/clustering.R +++ b/epclust/R/clustering.R @@ -23,8 +23,15 @@ NULL #' @rdname clustering #' @export clusteringTask1 <- function(indices, getContribs, K1, algoClust1, nb_items_clust, - ncores_clust=3, verbose=FALSE, parll=TRUE) + ncores_clust=3, verbose=FALSE) { + if (verbose) + cat(paste("*** Clustering task 1 on ",length(indices)," series [start]\n", sep="")) + + if (length(indices) <= K1) + return (indices) + + parll <- (ncores_clust > 1) if (parll) { # outfile=="" to see stderr/stdout on terminal @@ -40,8 +47,6 @@ clusteringTask1 <- function(indices, getContribs, K1, algoClust1, nb_items_clust { # Balance tasks by splitting the indices set - as evenly as possible indices_workers <- .splitIndices(indices, nb_items_clust, min_size=K1+1) - if (verbose) - cat(paste("*** [iterated] Clustering task 1 on ",length(indices)," series\n", sep="")) indices <- if (parll) { @@ -56,6 +61,10 @@ clusteringTask1 <- function(indices, getContribs, K1, algoClust1, nb_items_clust inds[ algoClust1(getContribs(inds), K1) ] ) ) } + if (verbose) + { + cat(paste("*** Clustering task 1 on ",length(indices)," medoids [iter]\n", sep="")) + } } if (parll) parallel::stopCluster(cl) @@ -66,7 +75,7 @@ clusteringTask1 <- function(indices, getContribs, K1, algoClust1, nb_items_clust #' @rdname clustering #' @export clusteringTask2 <- function(indices, getSeries, K2, algoClust2, nb_series_per_chunk, - smooth_lvl, nvoice, nbytes, endian, ncores_clust=3, verbose=FALSE, parll=TRUE) + smooth_lvl, nvoice, nbytes, endian, ncores_clust=3, verbose=FALSE) { if (verbose) cat(paste("*** Clustering task 2 on ",length(indices)," medoids\n", sep="")) @@ -76,7 +85,7 @@ clusteringTask2 <- function(indices, getSeries, K2, algoClust2, nb_series_per_ch # A) Compute the WER distances (Wavelets Extended coefficient of deteRmination) distances <- computeWerDists(indices, getSeries, nb_series_per_chunk, - smooth_lvl, nvoice, nbytes, endian, ncores_clust, verbose, parll) + smooth_lvl, nvoice, nbytes, endian, ncores_clust, verbose) # B) Apply clustering algorithm 2 on the WER distances matrix if (verbose)