X-Git-Url: https://git.auder.net/?p=epclust.git;a=blobdiff_plain;f=TODO;h=957c1119264e3d8542a2aa16803b38672c6afca8;hp=3a7c13e4f1b8dd5b7e39e0a34a6826f33c9e506d;hb=HEAD;hpb=1c6f223e4dc7f7f022fd18b1c99deff0da022387 diff --git a/TODO b/TODO index 3a7c13e..957c111 100644 --- a/TODO +++ b/TODO @@ -1,74 +1,53 @@ simulateur : complètement aléatoire ? from Irish dataset ? +wmtsa : wavBootstrap wavelets methods in statistics with R - p180 -00-convertir2009 et 2010.R -01-extractFeatures.R pour 2009 [utilise Stbr.R] (car on prédit 2010, pas besoin) -02-cluster2009.R -03-compute-sum-of-classes2009.R -05-cluster2WER-2009.R -06-prediction.R - Essayer distance wdist du package biwavelet ? geometric structure of high dim data and dim reduction 2011 -https://docs.docker.com/engine/getstarted/step_one/ +Piste à explorer pour les comparaisons: H20 -A faire: - - finir les experiences (sur nb de classes, nb de curves / chunk, nb de procs) - et sur d'autres architectures +#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) +#} -dans old_C_code/build : -cmake ../stage1/src -make +#TODO: map-reduce more appropriate R/clustering.R ligne 88 -dans data/, lancer R puis : -source("../old_C_code/wrapper.R") -serialize("../old_C_code/build", "2009.csv","2009.bin",1) -library(parallel) -np = detectCores() -nbSeriesPerChunk = 3000 -nbClusters = 20 -ppam_exe("../old_C_code/build",np,"2009.bin",nbSeriesPerChunk,nbClusters) -C = getMedoids("../old_C_code/build", "ppamResult.xml", "ppamFinalSeries.bin") -first100series = deserialize("../old_C_code/build", "2009.bin", "2009.csv.part", "1-100") -distor = getDistor("../old_C_code/build", "ppamResult.xml", "2009.bin") +#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/ -- interface matrice -> binaire - OK +PLOT: +plot manifold 2D distances WER / +fenetre tempo forme des courbes / +medoids / +gain en prevision: clust puis full --> enercast - - courbe synchrone - ?? +------- -Piste à explorer pour les comparaisons: H20 +Voici le code : -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 toutner sur machine plutôt standard, utilisateur "lambda" -utiliser Rcpp ? +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) -strategies for upscaling -From 25K to 25M : in 1000 chunks of 25K -Reference values : - K0 = 200 super consumers (SC) - K∗ = 15 nal clusters -1st strategy - Do 1000 times ONLY Energycon's 1st-step strategy on 25K clients - With the 1000 × K0 SC perform a 2-step run leading to K∗ clusters +dists3a <- computeWerDists(1:n, function(inds) M[,inds], n) ---> il faut lancer 1000(param: nbTasks?) tâches avec itérations (éventuelles) ---> écrire tous les résultats, puis les récupérer pour démarrer : ---> phase 2 sur 1000xK0 médoïdes +# je passe de distance Wer à corrélations : moralement tout est à 0 +summary((1 - dists3a[lower.tri(dists3a)]^2) / N / n) -2nd strategy - Do 1000 times Energycon's 2-step strategy on 25K clients leading to - 1000 × K∗ intermediate clusters - Treat the intermediate clusters as individual curves and perform a - single 2-step run to get K∗ final clusters +# or, les courbes sont très similaires, nous devrions être proche de 1 ! +corM <- cor(t(M)) +summary(corM[lower.tri(corM)]) ---> 1000(nbTasks) tâches avec itérations possibles, puis phase 2 en fin de chaqune des 1000 -tâches. On obtient 1000xK* médoïdes ---> Phase 2 sur les 1000xK* médoïdes +#si pas lissage --> on doit trouver 1 : TOCHECK +#regarder biwavelets smooth.wavelet : s'en inspirer