From: Benjamin Auder Date: Thu, 6 Feb 2020 19:05:43 +0000 (+0100) Subject: merge with remote X-Git-Url: https://git.auder.net/doc/html/%7B%7B%20asset%28%27mixstore/css/user/R.css?a=commitdiff_plain;h=e906736ea27105237e84c904dce6170353726292;p=epclust.git merge with remote --- e906736ea27105237e84c904dce6170353726292 diff --cc TODO index ac985f6,b96bad4..957c111 --- a/TODO +++ b/TODO @@@ -6,31 -6,13 +6,8 @@@ Essayer distance wdist du package biwav geometric structure of high dim data and dim reduction 2011 - https://docs.docker.com/engine/getstarted/step_one/ - - A faire: - - finir les experiences (sur nb de classes, nb de curves / chunk, nb de procs) - et sur d'autres architectures - Piste à explorer pour les comparaisons: H20 - renvoyer nombre d'individues par classe ? (+ somme ?) -renvoyer nombre d'individues par classe ? --hypothèse : données déjà ordonnées 48 1/2H sur 365j - utiliser du mixmod avec modèles allongés -utiliser mixmod avec modèles allongés --doit tourner sur machine plutôt standard, utilisateur "lambda" - utiliser Rcpp ? - - #point avec Jairo: - #rentrer dans code C cwt continue Rwave - #passer partie sowas à C - #fct qui pour deux series (ID, medoides) renvoie distance WER (Rwave ou à moi) - #transformee croisee , smoothing lissage 3 composantes , + calcul pour WER - #determiner nvoice noctave (entre octave + petit et + grand) - - #TODO: load some dataset ASCII CSV - #data_bin_file <<- "/tmp/epclust_test.bin" - #unlink(data_bin_file) -- #https://stat.ethz.ch/pipermail/r-help/2011-June/280133.html #randCov = function(d) #{ @@@ -39,20 -21,11 +16,11 @@@ # x %*% t(x) #} - #TODO: soften condition clustering.R line 37 ? - #regarder mapply et mcmapply pour le // (pas OK pour Windows ou GUI... mais ?) #TODO: map-reduce more appropriate R/clustering.R ligne 88 - #Alternative: use bigmemory to share series when CSV or matrix(...) - - #' @importFrom synchronicity boost.mutex lock unlock - - subtree: epclust, shared. This root folder should remain private #TODO: use dbs(), -- #https://www.r-bloggers.com/debugging-parallel-code-with-dbs/ -- #http://gforge.se/2015/02/how-to-go-parallel-in-r-basics-tips/ - - synchrones --> somme, pas moyenne ++#https://www.r-bloggers.com/debugging-parallel-code-with-dbs/ ++#http://gforge.se/2015/02/how-to-go-parallel-in-r-basics-tips/ PLOT: plot manifold 2D distances WER / @@@ -60,48 -33,9 +28,26 @@@ fenetre tempo forme des courbes medoids / gain en prevision: clust puis full --> enercast --réduire taille 17519 trop long ? - - synchrone : sum - cwt : trim R part - // : clever by rows retenir cwt... - - Stockage matrices : en colonnes systématiquement ? - - TODO: revoir les arguments, simplifier (dans les clustering...), - permettre algos de clustering quelconques, args: medoids (curves puis dists), K - - Plutôt ça que hack auto notebook generation: - https://mail.scipy.org/pipermail/ipython-dev/2014-March/013550.html - - #si pas lissage --> on doit trouver 1 : TOCHECK - #regarder biwavelets smooth.wavelet : c'est comme ça qu'il faut coder - #Options : smooth_lvl + filtre gaussien (smooth_method ?) - (this file : - https://github.com/tgouhier/biwavelet/blob/master/R/smooth.wavelet.R ) - - ===== ++------- + +Voici le code : + +library(epclust) + +n <- 5 +N <- 128 +M <- matrix(runif(n * N), nrow = n) #séries en lignes +M <- t(apply(M, 1, cumsum)) / sqrt(n * N) +matplot(t(M), type = 'l', lty = 1) + +dists3a <- computeWerDists(1:n, function(inds) M[,inds], n) + +# je passe de distance Wer à corrélations : moralement tout est à 0 +summary((1 - dists3a[lower.tri(dists3a)]^2) / N / n) -TODO: revoir les arguments, simplifier (dans les clustering...), +# or, les courbes sont très similaires, nous devrions être proche de 1 ! +corM <- cor(t(M)) +summary(corM[lower.tri(corM)]) - ---------> à checker - - meilleur task scheduling pour les runs parallel dans computeWerDists - (voir arg de parLapply, makeCLuster...) + #si pas lissage --> on doit trouver 1 : TOCHECK + #regarder biwavelets smooth.wavelet : s'en inspirer