6 \usepackage[utf8
]{inputenc}
7 \usepackage{amsmath, amsfonts
}
8 %\usepackage[francais]{babel}
9 \usepackage{hyperref, url, caption, tikz
}
11 %\usepackage{graphicx}
12 %\hypersetup{colorlinks,linkcolor=black,urlcolor=violet}
15 \setbeamertemplate{sections/subsections in toc
}[square
]
16 \beamertemplatenavigationsymbolsempty
19 %\newcommand{\N}{\mathbb{N}} % naturals
20 \newcommand{\set}[1]{\lbrace#1\rbrace} % set
21 %\newcommand{\R}{\mathbb{R}} % real
23 \colorlet{darkred
}{red!
80!black
}
24 \colorlet{darkblue
}{blue!
80!black
}
25 \colorlet{darkgreen
}{green!
60!black
}
27 \usetikzlibrary{calc,decorations.pathmorphing,patterns
}
28 \pgfdeclaredecoration{penciline
}{initial
}{
29 \state{initial
}[width=+
\pgfdecoratedinputsegmentremainingdistance,
30 auto corner on length=
1mm,
]{
33 \pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}
34 {\pgfdecorationsegmentamplitude}
38 \pgfpointadd{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt
}}
39 {\pgfqpoint{-
\pgfdecorationsegmentaspect
40 \pgfdecoratedinputsegmentremainingdistance}%
41 {\pgfmathresult\pgfdecorationsegmentamplitude}
45 \pgfpointadd{\pgfpointdecoratedinputsegmentlast}{\pgfpoint{1pt
}{1pt
}}
51 \tikzstyle{block
} =
[draw,rectangle,thick,minimum height=
2em,minimum width=
2em
]
53 %~ \usetikzlibrary{calc,decorations.pathmorphing,patterns}
54 %~ \pgfdeclaredecoration{penciline}{initial}{
55 %~ \state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance,
56 %~ auto corner on length=1mm,]{
59 %~ \pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}
60 %~ {\pgfdecorationsegmentamplitude}
64 %~ \pgfpointadd{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
65 %~ {\pgfqpoint{-\pgfdecorationsegmentaspect
66 %~ \pgfdecoratedinputsegmentremainingdistance}%
67 %~ {\pgfmathresult\pgfdecorationsegmentamplitude}
71 %~ \pgfpointadd{\pgfpointdecoratedinputsegmentlast}{\pgfpoint{1pt}{1pt}}
77 %~ \tikzstyle{block} = [draw,rectangle,thick,minimum height=2em,minimum width=2em]
78 %~ \colorlet{darkred}{red!80!black}
79 %~ \colorlet{darkblue}{blue!80!black}
80 %~ \colorlet{darkgreen}{green!60!black}
82 %\newcommand*\mystrut[1]{\vrule width0pt height0pt depth#1\relax}
83 %http://tex.stackexchange.com/questions/13843/vertical-spacing-with-underbrace-command
85 \title[Clustering de courbes de charge EDF
]
86 {Clustering de courbes de charge EDF
%\\
87 %Application à la prévision de la qualité de l'air
89 \author[Benjamin Auder, Jairo Cugliari
]
90 {Benjamin Auder
\inst{1}\\
[0.2cm
]Jairo Cugliari
\inst{2}\hspace*
{0.6cm
}\vspace*
{1cm
}}
92 \institute[]{\inst{1} CNRS Orsay / Université Paris-Sud
\hspace*
{1.3cm
} \and
93 \inst{2} Laboratoire ERIC / Université Lumière Lyon
2}
95 %~ \includegraphics[width=2cm]{logo_eric.png}\hspace*{4.75cm}~%
96 %~ \includegraphics[width=2cm]{logo_lyon2.jpg}
106 \begin{frame
}{Contexte industriel
}
110 \column{0.5\textwidth}
111 Smartgrid \& Smart meters :
35M compteurs individuels donnant de l'information en temps réel.\\
[0.7cm
]
112 $
\Rightarrow$
\textbf{Beaucoup
} de données.\\
[1cm
]
113 %\textcolor{white}{$\Rightarrow$} problèmes informatiques : protocoles de transfert, sécurité, \dots
114 Comment les traiter ?
116 \column{0.5\textwidth}
117 \includegraphics[width =
\textwidth]{smartgrid.jpg
}\\
118 \includegraphics[width =
\textwidth]{linky.jpg
}
124 \begin{frame
}{Des données variées, à différentes échelles
}
126 \begin{figure
}[!ht
] \centering
127 \begin{minipage
}[c
]{0.48\textwidth}
128 \includegraphics[width=
\textwidth,height=
3.45cm
]{longtermload.png
}
131 \caption{Tendance à long terme
} %\label{fig:gull}
133 ~
%spacing between images
134 \begin{minipage
}[c
]{0.48\textwidth}
135 \includegraphics[width=
\textwidth,height=
3.45cm
]{twoyearsload.png
}
138 \caption{Cyclicité semaine
} % \label{fig:tiger}
141 \begin{minipage
}[c
]{0.48\textwidth}
142 \includegraphics[width=
\textwidth,height=
3.45cm
]{dailyloads.png
}
145 \caption{Moyenne journalière
} % \label{fig:mouse}
147 ~
%spacing between images
148 \begin{minipage
}[c
]{0.48\textwidth}
149 \includegraphics[width=
\textwidth,height=
3.45cm
]{consotemp.png
}
152 \caption{Conso. vs. température
}
158 \begin{frame
}{Découpage en tranches non stationnaires
}
160 Si $
\exists \delta \ll D$, tel que les séries $
\delta-$agrégées soient stationnaires,\\
161 on les agrège et les traite comme des processus stationnaires.\\
[0.3cm
]
169 \
[ Z_k(t) = X(t + (k-
1)
\delta) \
]
170 \
[ k
\in\N \;\;\;
\forall t
\in [0,
\delta) \
]
173 \textbf{\emph{Mais...
}}
174 Une série temporelle représentant un phénomène complexe
175 \textcolor{white
}{\textbf{\emph{Mais...
}} }est en général clairement non stationnaire.\\
[0.5cm
]
177 $
\Rightarrow$ On décide de tenir compte de chaque point de discrétisation.
179 %Par exemple, la consommation électrique moyenne sur une semaine varie
182 %~ If $X$ contents a $\delta-$seasonal component,
183 %~ $Z$ is particularly fruitful.
185 %~ C'est pas vraiment notre cas : saisonnier à plusieurs echelles
186 %~ ==> objectif : tout prendre en compte
190 \begin{frame
}{Réduction de dimension
}
192 Données enregistrées toutes les
30 minutes pendant un an :\\
193 $
48 \times 365 =$
\textbf{17520 points de discrétisation
}.\\
[0.3cm
]
198 \includegraphics[width=
\textwidth,height=
5.5cm
]{3centers.png
}
201 \caption{Trois types de courbes de charge
\emph{(données irlandaises)
}}% présentant différents régimes}%{[Spoiler] Cinq centres de clusters}
205 $
\Rightarrow$ Il faut déterminer une représentation parcimonieuse, capturant\\
206 \textcolor{white
}{$
\Rightarrow$
}bien les variations localisées. On choisit une base d'ondelettes.\\
[0.5cm
]
207 %TODO: placer l'equation puis sa version discrète.
211 \begin{frame
}{Wavelets to cope with
\textsc{fd
}}
214 \column{.6\textwidth}
217 \includegraphics[width =
\textwidth]{./pics/weekly-
5.png
}
218 % * * * * * * * * * * * * * * * * * * *
219 \column{.4\textwidth}
222 \item domain-transform technique for hierarchical decomposing finite energy signals
223 \item description in terms of a broad trend (
\textcolor{PineGreen
}{approximation part
}), plus a set of localized changes kept in the
\textcolor{red
}{details parts
}.
229 \begin{block
}{Discrete Wavelet Transform
}
231 If $z
\in L_2(
[0,
1])$ we can write it as
233 \begin{equation*
}\label{eq:zeta
}
234 z(t) =
\sum_{k=
0}^
{2^
{j_0
}-
1} \textcolor{PineGreen
}{c_
{j_0, k
}} \phi_{j_0,k
} (t) +
235 \sum_{j=
{j_0
}}^
{\infty}
236 \sum_{k=
0}^
{2^j-
1} \textcolor{red
}{d_
{j,k
}} \psi_{j,k
} (t) ,
240 where $ c_
{j,k
} = <g,
\phi_{j,k
} > $, $ d_
{j,k
} = <g,
\varphi_{j,k
}>$ are the
241 \textcolor{PineGreen
}{scale coefficients
} and
\textcolor{red
}{wavelet coefficients
} respectively, and the functions $
\phi$ et $
\varphi$ are associated to a orthogonal
\textsc{mra
} of $L_2(
[0,
1])$.
246 %---------------------------------------- SLIDE ---------------------
248 \begin{frame
}{Energy decomposition of the DWT
}
252 \item Energy conservation of the signal
254 \begin{equation*
}\label{eq:energy
}
255 \| z \|_H^
2 \approx \|
\widetilde{z_J
} \|_2^
2
256 = c_
{0,
0}^
2 +
\sum_{j=
0}^
{J-
1} \sum_{k=
0}^
{2^j-
1} d_
{j,k
} ^
2 =
257 c_
{0,
0}^
2 +
\sum_{j=
0}^
{J-
1} \|
\mathbf{d
}_
{j
} \|_2^
2.
259 % \item characterization by the set of channel variances estimated at the output of the corresponding filter bank
260 \item For each $j=
0,
1,
\ldots,J-
1$, we compute the absolute and
261 relative contribution representations by
263 \
[ \underbrace{\hbox{cont
}_j = ||
\mathbf{d_j
}||^
2}_
{\fbox{AC
}}
264 \qquad \text{and
} \qquad
265 \underbrace{\hbox{rel
}_j =
266 \frac{||
\mathbf{d_j
}||^
2}
267 {\sum_j ||
\mathbf{d_j
}||^
2 }}_
{\fbox{RC
}} .\
]
268 \item They quantify the relative importance of the scales to the global dynamic.
269 % \item Only the wavelet coefficients $\set{d_{j,k}}$ are used.
270 \item RC normalizes the energy of each signal to
1.
275 %===========================================================================================
277 %===========================================================================================
279 \begin{frame
}{Objectif
}
281 \begin{figure
}[!ht
]\centering
282 \includegraphics[width =
\textwidth]{pics/schema.png
}
283 %\caption{Hierarchical structure of $N$ individual clients among $K$ groups.}\label{fig:schema-hier}
286 Regroupement par tarifs, zones géographiques, types de clients
\dots\\
[0.3cm
]
288 $
\Rightarrow$
\textbf{Idée
} : clustering pour déterminer ces groupes.\\
[0.3cm
]
290 \textcolor{white
}{$
\Rightarrow$
}\textbf{Méthode
} : paralléliser un algorithme classique.
292 %~ functional clustering
293 %~ wavelets to reduce dimension
294 %~ open MPI to cluster a bounded number of vectors at a time
298 \begin{frame
}{Fonction objectif
}
300 On cherche à minimiser la distorsion
301 $$
\Delta =
\sum_{i=
1}^
{n
} \min_{k=
1..K
} \| x_i - c_k \|_2^
{}$$
302 avec pour variables les $\
{c_1,
\dots,c_K\
} \subset \
{x_1,
\dots,x_n\
}, c_i
\neq c_j \,
\forall i
\neq j$.\\
[0.3cm
]
304 C'est un problème NP-dur
{\footnotesize (O. Kariv \& S. L. Hakimi,
\emph{An Algorithmic Approach to Network Location Problems. II: The p-Medians
})
}.\\
[0.1cm
]
305 %SIAM J. Appl. Math., 37(3), 539–560. (22 pages)
308 %~ \item Soit $P$ le problème de décision associé : $P(c_1,\dots,c_k) = 1$ si $(c_1,\dots,c_k)$ est optimal, 0 sinon.
309 %~ \item Soit $C$ un problème de décision bien connu comme étant NP-complet
310 %~ \item Il existe un algorithme ...
313 Pire : garantir un facteur $(
1+
\varepsilon)$ de l'optimum est NP-dur
314 {\footnotesize (J-H. Lin \& J. S. Vitter $
\varepsilon$-Approximations with Minimum Packing Constraint Violation)
}.\\
[0.2cm
]%(Extended Abstract)
316 \begin{block
}{NP : ``Non-deterministic Polynomial-time algorithms''
}
317 {\footnotesize Exécution en temps polynomial sur une machine de Turing non déterministe.
}
320 \begin{block
}{NP-dur
}
321 ``Au moins aussi dur que le plus complexe des problèmes NP''
324 %~ Tous les algorithmes existants déterminant les $c_k$ sont donc des heuristiques d'approximation
325 %~ ...et parler de la parallélisation ??! donc 16 slides au total.
326 %NP-complet : c'est à dire... expliquer.
327 %Algos existants = heuristiques pr s'approcher de l'optimum (d'un...)
331 \begin{frame
}{Algorithme PAM
}
333 %PAM : montrer algo, dire comment on parallélise naïvement
336 \setcounter{enumi
}{-
1}
337 \item Initialize: randomly select (without replacement) $K$ of the $n$ data points as the medoids.
338 \item Associate each data point to the closest medoid. (``closest'' here is defined using any valid distance metric, most commonly Euclidean distance, Manhattan distance or Minkowski distance).
339 \item For each medoid $m$\\
340 \quad For each non-medoid data point $o$
\emph{in the same cluster
}\\
341 \quad\quad Swap $m$ and $o$ and compute the total cost.
342 \item Select the configuration with the lowest cost.\\
343 If any change occurred in the medoids, go to step
1.
346 \begin{block
}{Réduire le coût des étapes
2 et
3 ?
}
348 \item Dans R, pam(do.swap=FALSE) supprime les étapes
2 et
3.
349 \item A. P. Reynolds et al. (
2006) : quelques astuces algorithmiques.
355 \begin{frame
}{Parallélisation
}
357 \begin{block
}{Deux approches (entre autres)
}
359 \item Découpage de l'espace en $Z < K$ zones, et recherche de $K/Z$ clusters dans chaque zone.
360 \item Partition des données $P_1,
\dots,P_Z$ puis clustering à $K$ groupes dans chaque $P_k$.
361 (Puis ``fusion'' des médoïdes).
367 Choix de la seconde alternative et implémentation avec OpenMPI :
369 \setcounter{enumi
}{-
1}
370 \item Le processus ``maître'' a pour numéro
0. Il divise les données en sous-ensembles de cardinal au plus
371 $C$ ($C =
5000$ par exemple). Il envoie ensuite une tâche de clustering par sous-ensemble, et attend les résultats.
372 \item Chaque processus ``esclave'' (numérotés de
1 à $p-
1$) reçoit une liste de (références de) courbes, qu'il récupère
373 et classe via l'algorithme PAM. Il retourne les centres au processus
0.
374 \item Si on obtient plus de $C$ médoïdes, on recommence depuis l'étape
1. Sinon, on applique une dernière
375 fois l'algorithme PAM (sur les médoïdes).
381 \begin{frame
}{Exécution du programme
}
385 \includegraphics[width=
\linewidth,height=
8cm
]{pics/screen_demo.png
}
387 %~ \caption{Groupe 1}
392 \begin{frame
}{Application I: Electricity Smart Meter CBT
}
394 %\footnotetext[1]{\textit{Irish Social Science Data Archive}, }
397 \item 4621 Irish households smart meter data
398 (
\href{http://www.ucd.ie/issda/data/
}{ISSDA
})
399 % eséries de consommation électrique de foyers irlandais
400 \item About
25K discretization points
401 \item We test with $K=$
3 or
5 classes
402 \item We compare sequential and parallel versions
407 \begin{tabular
}{lcc
} \hline
409 & Distortion & (Internal) adequacy \\
\hline
410 3 clusters sequential &
1.90e7 &
0.90 \\
411 3 clusters parallel &
2.15e7 &
0.90 \\
412 5 clusters sequential &
1.61e7 &
0.89 \\
413 5 clusters parallel &
1.84e7 &
0.89 \\
\hline
415 % \caption{Distorsions et indices d'adéquation des partitions}
418 \textbf{Adequacy :
} given $P_1 = (i_1,
\dots,i_n)$ and $P_2 = (j_1,
\dots,j_n)$,\\
419 \textcolor{white
}{\textbf{Adequacy :
}} find a matching which maximize $S =
\sum_{k=
1}^
{n
} \mathbb{1}_
{i_k = j_k
}$\\
420 \textcolor{white
}{\textbf{Adequacy :
}} (hungarian algorithm), and then return $S/n$.
424 \begin{frame
}{Application II: Starlight curves
}
427 \item Data from
\href{http://www.cs.ucr.edu/~eamonn/time_series_data/
}{UCR Time Series Classification/Clustering
}
428 %\url{http://www.cs.ucr.edu/~eamonn/time_series_data/}}
429 \item 1000 curves learning set +
8236 validation set ($d =
1024$)
% discretization points
433 \begin{minipage
}[c
]{.32\linewidth}
434 \includegraphics[width=
\linewidth,height=
3.5cm
]{pics/slgr1.png
}
438 \begin{minipage
}[c
]{.32\linewidth}
439 \includegraphics[width=
\linewidth,height=
3.5cm
]{pics/slgr2.png
}
443 \begin{minipage
}[c
]{.32\linewidth}
444 \includegraphics[width=
\linewidth,height=
3.5cm
]{pics/slgr3.png
}
454 \begin{tabular
}{lccc
} \hline
455 & &
\multicolumn{2}{c
}{Adequacy
} \\
456 & Distortion & Internal & External \\
\hline
457 Training (sequential) &
1.31e4 &
0.79 &
0.77 \\
458 Training (parallel) &
1.40e4 &
0.79 &
0.68 \\
459 Test (sequential) &
1.09e5 &
0.78 &
0.76 \\
460 Test (parallel) &
1.15e5 &
0.78 &
0.69 \\
\hline
462 %\caption{Distorsions et indices d'adéquation des partitions}
468 \begin{frame
}{Conclusion
}
470 %~ On peut clusteriser
471 %~ Faudrait etre moins naif
472 %~ Faudrait aussi étendre/généraliser le code...
474 \begin{block
}{Résumé
}
477 \item Les smartmètres mesurent la charge électrique pour chaque client, en temps réel $
\Rightarrow$ données fonctionnelles.
478 \item Les ondelettes fournissent des représentations parcimonieuses tout en préservant la nature fonctionnelle des données.
479 \item L'analyse de ces représentations à l'aide de l'algorithme PAM permet d'identifier des groupes de clients.
480 \item L'algorithme PAM est appliqué en parallèle sur des jeux de données de tailles raisonnables.
484 % \item \textit{Divide-and-Conquer} approach thanks to MPI library %pour l'algorithme des $k$-médoïdes : d'abord sur des groupes de données courbes, puis des groupes de médoïdes jusqu'à obtenir un seul ensemble traité sur un processseur.
485 %\item %Les résultats obtenus sur les deux jeux de données présentés sont assez encourageants, et permettent d'envisager une utilisation à plus grande échelle.
488 \begin{exampleblock
}{Perspectives
}
491 \item L'étude des groupes de clients peut donner lieu à l'élaboration de $K$ modèles prédictifs spécialisés.
492 \item La méthode de clustering parallèle proposée peut être adaptée pour traiter les
35M séries (sur un supercalculateur ?).
493 %\item Apply the algorithm over many hundreds of processors
499 \begin{frame
}{Références
}
501 \begin{thebibliography
}{4}
502 \bibitem{1} \textcolor{black
}{A. Antoniadis, X. Brossat, J. Cugliari, J.-M. Poggi
} (
2013), Clustering Functional Data Using Wavelets,
\textcolor{black
}{{\it Wavelets, Multiresolution and Information Processing
},
11(
1),
35--
64}
504 \bibitem{2} \textcolor{black
}{A. Arbelaez, L. Quesada
} (
2013), Parallelising the k-Medoids Clustering Problem Using Space-Partitioning,
\textcolor{black
}{{\it Symposium on Combinatorial Search
}, AAAI Publications
}
506 \bibitem{3} \textcolor{black
}{R. Bekkerman, M. Bilenko, J. Langford - éditeurs
} (
2011),
507 Scaling up Machine Learning: Parallel and Distributed Approaches,
\textcolor{black
}{Cambridge University Press
}
509 \bibitem{4} \textcolor{black
}{A. P. Reynolds, G. Richards, B. de la Iglesia, V. J. Rayward-Smith
} (
2006), Clustering Rules: A Comparison of Partitioning and Hierarchical Clustering Algorithms,
\textcolor{black
}{{\it Mathematical Modelling and Algorithms
},
5(
4),
475--
504}
511 %\bibitem{3} P. Berkhin (2006), A Survey of Clustering Data Mining Techniques, {\it Grouping Multidimensional Data, éditeurs : J. Kogan, C. Nicholas, M. Teboulle}.
513 %\bibitem{6} J. Dean et S. Ghemawat (2004), MapReduce: Simplified Data Processing on Large Clusters, {\it Sixth Symposium on Operating System Design and Implementation}.
515 %\bibitem{7} G. De Francisci Morales et A. Bifet (2013), G. De Francisci Morales SAMOA: A Platform for Mining Big Data Streams Keynote Talk at RAMSS ’13: 2nd International Workshop on Real-Time Analysis and Mining of Social Streams WWW, Rio De Janeiro
517 %\bibitem{10} L. Kaufman et P.J. Rousseeuw (1987), Clustering by means of Medoids, {\it Statistical Data Analysis Based on the L\_1-Norm and Related Methods, éditeur : Y. Dodge}.
518 \end{thebibliography
}
520 %[2013] A. Antoniadis, X. Brossat, J. Cugliari & J.-M. Poggi. Clustering functional data using Wavelets Inter. J. of Wavelets, Multiresolution and Information Procesing. doi:10.1142/S0219691313500033
522 %~ Scaling up Machine Learning: Parallel and Distributed Approaches [Anglais] [Relié]
523 %~ Ron Bekkerman (Sous la direction de), Mikhail Bilenko (Sous la direction de), John Langford
530 \includegraphics[width=
7cm,height=
7cm
]{Questions.jpg
}