'update'
[epclust.git] / TODO
diff --git a/TODO b/TODO
index 3a7c13e..957c111 100644 (file)
--- 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