simulateur : complètement aléatoire ? from Irish dataset ? wmtsa : wavBootstrap wavelets methods in statistics with R - p180 Essayer distance wdist du package biwavelet ? 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 ?) hypothèse : données déjà ordonnées 48 1/2H sur 365j utiliser du 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) #{ # x <- matrix(rnorm(d*d), nrow=d) # x <- x / sqrt(rowSums(x^2)) # 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 PLOT: plot manifold 2D distances WER / 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) # 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...)