Commit | Line | Data |
---|---|---|
572d139a | 1 | simulateur : complètement aléatoire ? from Irish dataset ? |
62deb424 | 2 | wmtsa : wavBootstrap |
572d139a BA |
3 | wavelets methods in statistics with R - p180 |
4 | ||
572d139a BA |
5 | Essayer distance wdist du package biwavelet ? |
6 | ||
7 | geometric structure of high dim data and dim reduction 2011 | |
1568db29 BA |
8 | |
9 | https://docs.docker.com/engine/getstarted/step_one/ | |
7709d507 BA |
10 | |
11 | A faire: | |
5edda192 | 12 | - finir les experiences (sur nb de classes, nb de curves / chunk, nb de procs) |
7709d507 | 13 | et sur d'autres architectures |
14cb6cf8 | 14 | |
5edda192 | 15 | Piste à explorer pour les comparaisons: H20 |
e2a7484d BA |
16 | |
17 | renvoyer nombre d'individues par classe ? (+ somme ?) | |
18 | hypothèse : données déjà ordonnées 48 1/2H sur 365j | |
19 | utiliser du mixmod avec modèles allongés | |
62deb424 | 20 | doit tourner sur machine plutôt standard, utilisateur "lambda" |
e2a7484d BA |
21 | utiliser Rcpp ? |
22 | ||
d7d55bc1 BA |
23 | #point avec Jairo: |
24 | #rentrer dans code C cwt continue Rwave | |
25 | #passer partie sowas à C | |
26 | #fct qui pour deux series (ID, medoides) renvoie distance WER (Rwave ou à moi) | |
27 | #transformee croisee , smoothing lissage 3 composantes , + calcul pour WER | |
28 | #determiner nvoice noctave (entre octave + petit et + grand) | |
8702eb86 BA |
29 | |
30 | #TODO: load some dataset ASCII CSV | |
31 | #data_bin_file <<- "/tmp/epclust_test.bin" | |
32 | #unlink(data_bin_file) | |
33 | ||
34 | #https://stat.ethz.ch/pipermail/r-help/2011-June/280133.html | |
35 | #randCov = function(d) | |
36 | #{ | |
37 | # x <- matrix(rnorm(d*d), nrow=d) | |
38 | # x <- x / sqrt(rowSums(x^2)) | |
39 | # x %*% t(x) | |
40 | #} | |
492cd9e7 BA |
41 | |
42 | #TODO: soften condition clustering.R line 37 ? | |
43 | #regarder mapply et mcmapply pour le // (pas OK pour Windows ou GUI... mais ?) | |
44 | #TODO: map-reduce more appropriate R/clustering.R ligne 88 | |
45 | #Alternative: use bigmemory to share series when CSV or matrix(...) | |
46 | ||
47 | #' @importFrom synchronicity boost.mutex lock unlock | |
bf5c0844 BA |
48 | |
49 | subtree: epclust, shared. This root folder should remain private | |
2c14dbea BA |
50 | |
51 | #TODO: use dbs(), | |
52 | #https://www.r-bloggers.com/debugging-parallel-code-with-dbs/ | |
53 | #http://gforge.se/2015/02/how-to-go-parallel-in-r-basics-tips/ | |
54 | ||
55 | synchrones --> somme, pas moyenne | |
56 | ||
57 | PLOT: | |
58 | plot manifold 2D distances WER / | |
59 | fenetre tempo forme des courbes / | |
60 | medoids / | |
61 | gain en prevision: clust puis full --> enercast | |
6ad3f3fd BA |
62 | |
63 | réduire taille 17519 trop long ? | |
64 | ||
65 | synchrone : sum | |
66 | cwt : trim R part | |
67 | // : clever by rows retenir cwt... | |
a174b8ea BA |
68 | |
69 | Stockage matrices : en colonnes systématiquement ? | |
eef6f6c9 BA |
70 | |
71 | TODO: revoir les arguments, simplifier (dans les clustering...), | |
72 | permettre algos de clustering quelconques, args: medoids (curves puis dists), K | |
4a0c39a3 BA |
73 | |
74 | Plutôt ça que hack auto notebook generation: | |
75 | https://mail.scipy.org/pipermail/ipython-dev/2014-March/013550.html | |
22b1a077 BA |
76 | |
77 | #si pas lissage --> on doit trouver 1 : TOCHECK | |
78 | #regarder biwavelets smooth.wavelet : c'est comme ça qu'il faut coder | |
79 | #Options : smooth_lvl + filtre gaussien (smooth_method ?) | |
02c6f6f2 BA |
80 | (this file : |
81 | https://github.com/tgouhier/biwavelet/blob/master/R/smooth.wavelet.R ) | |
e06420d2 BA |
82 | |
83 | ===== | |
84 | ||
85 | Voici le code : | |
86 | ||
87 | library(epclust) | |
88 | ||
89 | n <- 5 | |
90 | N <- 128 | |
91 | M <- matrix(runif(n * N), nrow = n) #séries en lignes | |
92 | M <- t(apply(M, 1, cumsum)) / sqrt(n * N) | |
93 | matplot(t(M), type = 'l', lty = 1) | |
94 | ||
95 | dists3a <- computeWerDists(1:n, function(inds) M[,inds], n) | |
96 | ||
97 | # je passe de distance Wer à corrélations : moralement tout est à 0 | |
98 | summary((1 - dists3a[lower.tri(dists3a)]^2) / N / n) | |
99 | ||
100 | # or, les courbes sont très similaires, nous devrions être proche de 1 ! | |
101 | corM <- cor(t(M)) | |
102 | summary(corM[lower.tri(corM)]) | |
103 | ||
104 | ---------> à checker |