projects
/
epclust.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e161499
)
WER distances is a regular matrix, fix doc (weird latex error?)
author
Benjamin Auder
<benjamin.auder@somewhere>
Wed, 8 Mar 2017 21:30:16 +0000
(22:30 +0100)
committer
Benjamin Auder
<benjamin.auder@somewhere>
Wed, 8 Mar 2017 21:30:16 +0000
(22:30 +0100)
epclust/R/clustering.R
patch
|
blob
|
blame
|
history
diff --git
a/epclust/R/clustering.R
b/epclust/R/clustering.R
index
92adda2
..
0d37c24
100644
(file)
--- a/
epclust/R/clustering.R
+++ b/
epclust/R/clustering.R
@@
-18,6
+18,7
@@
#' @param getContribs Function to retrieve contributions from initial series indices:
#' \code{getContribs(indices)} outpus a contributions matrix
#' @param contribs matrix of contributions (e.g. output of \code{curvesToContribs()})
#' @param getContribs Function to retrieve contributions from initial series indices:
#' \code{getContribs(indices)} outpus a contributions matrix
#' @param contribs matrix of contributions (e.g. output of \code{curvesToContribs()})
+#' @param distances matrix of K1 x K1 (WER) distances between synchrones
#' @inheritParams computeSynchrones
#' @inheritParams claws
#'
#' @inheritParams computeSynchrones
#' @inheritParams claws
#'
@@
-77,8
+78,7
@@
clusteringTask2 = function(medoids, K2,
synchrones = computeSynchrones(medoids,
getRefSeries, nb_ref_curves, nb_series_per_chunk, ncores_clust, verbose, parll)
distances = computeWerDists(synchrones, ncores_clust, verbose, parll)
synchrones = computeSynchrones(medoids,
getRefSeries, nb_ref_curves, nb_series_per_chunk, ncores_clust, verbose, parll)
distances = computeWerDists(synchrones, ncores_clust, verbose, parll)
- # PAM in package 'cluster' cannot take big.matrix in input: need to cast it
- medoids[ computeClusters2(distances[,],K2,verbose), ]
+ medoids[ computeClusters2(distances,K2,verbose), ]
}
#' @rdname clustering
}
#' @rdname clustering
@@
-166,7
+166,7
@@
computeSynchrones = function(medoids, getRefSeries,
}
indices_workers = .spreadIndices(seq_len(nb_ref_curves), nb_series_per_chunk)
}
indices_workers = .spreadIndices(seq_len(nb_ref_curves), nb_series_per_chunk)
-
browser()
+
#
browser()
ignored <-
if (parll)
parallel::parLapply(cl, indices_workers, computeSynchronesChunk)
ignored <-
if (parll)
parallel::parLapply(cl, indices_workers, computeSynchronesChunk)
@@
-197,7
+197,7
@@
computeSynchrones = function(medoids, getRefSeries,
#' as the series in the initial dataset
#' @inheritParams claws
#'
#' as the series in the initial dataset
#' @inheritParams claws
#'
-#' @return A
big.
matrix of size K1 x K1
+#' @return A matrix of size K1 x K1
#'
#' @export
computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
#'
#' @export
computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
@@
-244,6
+244,7
@@
computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
sqres / max(Mod(sqres))
}
sqres / max(Mod(sqres))
}
+ # Distance between rows i and j
computeDistancesIJ = function(pair)
{
i = pair[1] ; j = pair[2]
computeDistancesIJ = function(pair)
{
i = pair[1] ; j = pair[2]
@@
-278,7
+279,9
@@
computeWerDists = function(synchrones, ncores_clust=1,verbose=FALSE,parll=TRUE)
parallel::stopCluster(cl)
Xwer_dist[n,n] = 0.
parallel::stopCluster(cl)
Xwer_dist[n,n] = 0.
- Xwer_dist
+ distances <- Xwer_dist[,]
+ rm(Xwer_dist) ; gc()
+ distances #~small matrix K1 x K1
}
# Helper function to divide indices into balanced sets
}
# Helper function to divide indices into balanced sets