X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=epclust%2Ftests%2Ftestthat%2Fhelper.clustering.R;h=f39257e2b61df891ec37d5f36caee93cd170e1c8;hb=a52836b23adb4bfa6722642ec6426fb7b5f39650;hp=21a791a4b7a3a42fe71618d50f63c5025f277e38;hpb=0486fbadb122cb4d78c5d9f248c29800a59eb24e;p=epclust.git diff --git a/epclust/tests/testthat/helper.clustering.R b/epclust/tests/testthat/helper.clustering.R index 21a791a..f39257e 100644 --- a/epclust/tests/testthat/helper.clustering.R +++ b/epclust/tests/testthat/helper.clustering.R @@ -1,15 +1,18 @@ -#shorthand: map 1->1, 2->2, 3->3, 4->1, ..., 149->2, 150->3, ... (is base==3) +# Shorthand: map 1->1, 2->2, 3->3, 4->1, ..., 149->2, 150->3, ... (is base==3) I = function(i, base) (i-1) %% base + 1 -# NOTE: medoids can be a big.matrix +# Compute the sum of (normalized) sum of squares of closest distances to a medoid. +# Note: medoids can be a big.matrix computeDistortion = function(series, medoids) { - n = nrow(series) ; L = ncol(series) - distortion = 0. if (bigmemory::is.big.matrix(medoids)) - medoids = medoids[,] + medoids = medoids[,] #extract standard matrix + + n = ncol(series) ; L = nrow(series) + distortion = 0. for (i in seq_len(n)) distortion = distortion + min( colSums( sweep(medoids,1,series[,i],'-')^2 ) / L ) - distortion / n + + sqrt( distortion / n ) }