{"id":394,"date":"2026-10-05T18:49:50","date_gmt":"2026-10-05T16:49:50","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=394"},"modified":"2026-10-14T17:21:55","modified_gmt":"2026-10-14T15:21:55","slug":"qu-est-ce-qu-un-apprentissage-non-supervise","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/machine-learning\/qu-est-ce-qu-un-apprentissage-non-supervise\/","title":{"rendered":"Apprentissage non supervis\u00e9 : chercher sans consigne"},"content":{"rendered":"<p><\/p>\n<p>Apr\u00e8s une temp\u00eate, on a mesur\u00e9 cinq dimensions du corps de moineaux femelles pour tester la th\u00e9orie de la s\u00e9lection naturelle de Darwin. Le tableau est l\u00e0, mais personne n&rsquo;a \u00e9crit la question : aucune valeur \u00e0 pr\u00e9dire, aucune r\u00e9ponse \u00e0 viser. Pourtant, deux axes construits \u00e0 partir de ces mesures rassemblent pr\u00e8s de 83 % de la variance totale, et un simple graphique y fait ressortir les oiseaux atypiques. Voil\u00e0 un apprentissage non supervis\u00e9 : tu vas voir ce qu&rsquo;il cherche, comment deux de ses outils s&rsquo;y prennent, et quelles id\u00e9es fausses les accompagnent.<\/p>\n<p><strong>Sommaire<\/strong><\/p>\n<ul>\n<li><a href=\"#l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/a><\/li>\n<li><a href=\"#aucune-reponse-a-predire-ce-qu-on-cherche-alors\">Aucune r\u00e9ponse \u00e0 pr\u00e9dire : ce qu&rsquo;on cherche alors<\/a><\/li>\n<li><a href=\"#a-quoi-sert-une-structure-decouverte-voir-resumer-completer-regrouper\">\u00c0 quoi sert une structure d\u00e9couverte : voir, r\u00e9sumer, compl\u00e9ter, regrouper<\/a><\/li>\n<li><a href=\"#l-acp-pivoter-les-axes-vers-la-ou-ca-varie\">L&rsquo;ACP : pivoter les axes vers l\u00e0 o\u00f9 \u00e7a varie<\/a><\/li>\n<li><a href=\"#faire-des-paquets-k-moyennes-puis-dendrogramme\">Faire des paquets : k-moyennes puis dendrogramme<\/a><\/li>\n<li><a href=\"#ou-le-non-supervise-se-glisse-dans-un-projet-de-prediction\">O\u00f9 le non supervis\u00e9 se glisse dans un projet de pr\u00e9diction<\/a><\/li>\n<li><a href=\"#quatre-idees-recues-sur-ce-que-ces-methodes-trouvent\">Quatre id\u00e9es re\u00e7ues sur ce que ces m\u00e9thodes trouvent<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Un apprentissage non supervis\u00e9 travaille sur <strong>des mesures sans r\u00e9ponse associ\u00e9e<\/strong> : rien \u00e0 pr\u00e9dire, une structure \u00e0 faire appara\u00eetre.<\/li>\n<li>Cette structure prend deux formes : des groupes naturels d&rsquo;observations, ou <strong>une repr\u00e9sentation plus compacte<\/strong> de variables corr\u00e9l\u00e9es.<\/li>\n<li>L&rsquo;ACP r\u00e9sume beaucoup de variables en quelques axes, et <strong>la variance expliqu\u00e9e<\/strong> dit si le r\u00e9sum\u00e9 reste fid\u00e8le : pr\u00e8s de 83 % pour deux axes sur cinq mesures de moineaux.<\/li>\n<li>Les k-moyennes fixent le nombre de groupes d&rsquo;avance ; le clustering hi\u00e9rarchique dessine un arbre o\u00f9 <strong>le dendrogramme se coupe \u00e0 la hauteur voulue<\/strong>.<\/li>\n<li>Aucun r\u00e9sultat n&rsquo;est une v\u00e9rit\u00e9 unique : <strong>optimum local, linkage, normalisation<\/strong> changent ce que l&rsquo;algorithme trouve.<\/li>\n<\/ul>\n<h2 id=\"aucune-reponse-a-predire-ce-qu-on-cherche-alors\">Aucune r\u00e9ponse \u00e0 pr\u00e9dire : ce qu&rsquo;on cherche alors<\/h2>\n<p>Dans un apprentissage non supervis\u00e9, tu disposes seulement d&rsquo;un ensemble de mesures <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-d77903c38ea4d325874dd7827799504a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;&#95;&#49;&#44;&#32;&#92;&#100;&#111;&#116;&#115;&#44;&#32;&#120;&#95;&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"75\" style=\"vertical-align: -4px;\"\/> : pour chaque individu, une s\u00e9rie de valeurs, et rien d&rsquo;autre. Pour chaque moineau, ce sont ses cinq mesures corporelles ; aucune r\u00e9ponse <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-82606c3098bb09002088b0f6f9ffbb2a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#89;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> n&rsquo;y est rattach\u00e9e. Le but devient de <strong>faire appara\u00eetre une structure<\/strong> \u00e0 l&rsquo;int\u00e9rieur des donn\u00e9es.<\/p>\n<p>Cette structure prend deux formes : des groupes naturels d&rsquo;observations, ou une repr\u00e9sentation plus compacte de variables fortement corr\u00e9l\u00e9es entre elles. \u00c0 chacune son outil. Le <strong>clustering<\/strong>, ou classification non supervis\u00e9e, r\u00e9partit les observations en groupes tels que celles d&rsquo;un m\u00eame groupe se ressemblent davantage entre elles qu&rsquo;avec celles des autres.<\/p>\n<p>L&rsquo;<strong>analyse en composantes principales<\/strong> (ACP) cherche, elle, un petit nombre de dimensions synth\u00e9tiques qui capturent l&rsquo;essentiel de la variabilit\u00e9 pr\u00e9sente dans les donn\u00e9es d&rsquo;origine. Ces deux outils structurent la suite.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> Tu ne cherches pas \u00e0 deviner une valeur, tu demandes aux donn\u00e9es ce qu&rsquo;elles montrent d&rsquo;elles-m\u00eames. Un groupe dit \u00ab ces individus se ressemblent \u00bb ; un axe dit \u00ab ces variables racontent presque la m\u00eame chose \u00bb.<\/p>\n<\/blockquote>\n<h2 id=\"a-quoi-sert-une-structure-decouverte-voir-resumer-completer-regrouper\">\u00c0 quoi sert une structure d\u00e9couverte : voir, r\u00e9sumer, compl\u00e9ter, regrouper<\/h2>\n<p>Une structure d\u00e9couverte rend des services tr\u00e8s diff\u00e9rents, et pas seulement en statistique classique. Le tableau les range par besoin.<\/p>\n<table>\n<thead>\n<tr>\n<th>Besoin<\/th>\n<th>Outil<\/th>\n<th>Ce que \u00e7a donne<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Voir des donn\u00e9es \u00e0 nombreuses variables<\/td>\n<td>ACP<\/td>\n<td>une projection sur deux ou trois composantes<\/td>\n<\/tr>\n<tr>\n<td>R\u00e9sumer et rep\u00e9rer l&rsquo;atypique<\/td>\n<td>ACP<\/td>\n<td>deux axes pour cinq mesures de moineaux<\/td>\n<\/tr>\n<tr>\n<td>Boucher des valeurs manquantes<\/td>\n<td>ACP it\u00e9rative<\/td>\n<td>des \u00e9valuations d&rsquo;utilisateurs compl\u00e9t\u00e9es<\/td>\n<\/tr>\n<tr>\n<td>Regrouper des phrases<\/td>\n<td>k-moyennes<\/td>\n<td>un d\u00e9coupage de texte par proximit\u00e9 de sens<\/td>\n<\/tr>\n<tr>\n<td>Fusionner des variantes d&rsquo;une m\u00eame entit\u00e9<\/td>\n<td>clustering<\/td>\n<td>un seul n\u0153ud coh\u00e9rent dans un graphe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Pour voir, le probl\u00e8me est simple : d\u00e8s que le nombre de variables <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bf85f1087e9fbed3a319341134ac1a2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> d\u00e9passe deux ou trois, <strong>un nuage de points ordinaire devient impossible<\/strong>. L&rsquo;ACP y r\u00e9pond en projetant les observations sur les deux ou trois premi\u00e8res composantes.<\/p>\n<p>Pour boucher les trous, prends un syst\u00e8me de recommandation : la matrice des \u00e9valuations des utilisateurs pour diff\u00e9rents produits est presque toujours tr\u00e8s incompl\u00e8te. La compl\u00e9tion de matrice par ACP reconstruit alors les composantes et les valeurs manquantes ensemble, en alternant entre les deux jusqu&rsquo;\u00e0 convergence, avec un r\u00e9sultat <strong>nettement plus robuste que la moyenne<\/strong>.<\/p>\n<p>Hors des tableaux de mesures, les m\u00eames id\u00e9es servent aussi sur du texte. Pour d\u00e9couper un document, on plonge ses phrases dans un espace num\u00e9rique puis on regroupe les phrases semblables par k-moyennes : il faut r\u00e9gler le nombre de groupes, et <strong>l&rsquo;ordre des phrases risque de se perdre<\/strong>.<\/p>\n<p>Dans un <a href=\"\/blog\/rag\/qu-est-ce-qu-un-graphe-de-connaissances\/\" title=\"graphe de connaissances\">graphe de connaissances<\/a>, la r\u00e9solution d&rsquo;entit\u00e9s fusionne les variantes de nommage d&rsquo;une m\u00eame entit\u00e9 r\u00e9elle en un seul n\u0153ud, notamment gr\u00e2ce \u00e0 des algorithmes de clustering. Les seuils qui conviennent \u00e0 des organisations financi\u00e8res donneraient des r\u00e9sultats m\u00e9diocres sur des entit\u00e9s biologiques. Quant aux neurones d&rsquo;un <a href=\"\/blog\/deep-learning\/qu-est-ce-qu-un-transformer\/\" title=\"Transformer\">Transformer<\/a>, on r\u00e9duit d&rsquo;abord leur dimension pour visualiser leurs activations, avec une factorisation de matrices non n\u00e9gatives plut\u00f4t que l&rsquo;ACP, afin d&rsquo;\u00e9viter les activations n\u00e9gatives.<\/p>\n<h2 id=\"l-acp-pivoter-les-axes-vers-la-ou-ca-varie\">L&rsquo;ACP : pivoter les axes vers l\u00e0 o\u00f9 \u00e7a varie<\/h2>\n<p>Prends cinq points d\u00e9crits par deux attributs, centr\u00e9s autour de z\u00e9ro. L&rsquo;ACP ressemble \u00e0 une <strong>simple rotation des axes<\/strong> : on fait pivoter le rep\u00e8re pour que la plus grande dispersion des donn\u00e9es s&rsquo;aligne sur l&rsquo;axe horizontal.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef470eb104&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef470eb104\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1195\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-scaled.png\" alt=\"Cinq points centr\u00e9s dans le plan (x1, x2) \u00e0 gauche ; \u00e0 droite, les m\u00eames points dans le rep\u00e8re pivot\u00e9 (PC1, PC2), o\u00f9 deux d'entre eux s'\u00e9cartent loin de l'origine sur l'axe PC1\" class=\"wp-image-389\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-300x140.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-1024x478.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-768x358.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-1536x717.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch01_projection_pca_jouet-2048x956.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Regarde le panneau de droite : c&rsquo;est sur l&rsquo;axe horizontal PC1 que deux points s&rsquo;\u00e9loignent le plus de l&rsquo;origine, plus que ceux de l&rsquo;axe vertical PC2. Les points n&rsquo;ont pas boug\u00e9, c&rsquo;est le rep\u00e8re qui a tourn\u00e9.<\/figcaption><\/figure>\n\n\n<h3>La premi\u00e8re composante : la direction qui \u00e9tale le plus<\/h3>\n<p>La <strong>premi\u00e8re composante principale<\/strong> est la direction de l&rsquo;espace des <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bf85f1087e9fbed3a319341134ac1a2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> variables le long de laquelle les observations varient le plus. C&rsquo;est la combinaison lin\u00e9aire<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 17px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-0575c36db24edf04a0c2fcb6cd296ca7_l3.png\" height=\"17\" width=\"270\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#90;&#95;&#49;&#32;&#61;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#49;&#49;&#125;&#88;&#95;&#49;&#32;&#43;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#50;&#49;&#125;&#88;&#95;&#50;&#32;&#43;&#32;&#92;&#100;&#111;&#116;&#115;&#32;&#43;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#112;&#49;&#125;&#88;&#95;&#112;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>dont la variance est maximale parmi toutes les combinaisons possibles. Les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bae4ed0f7bf769e8a337fc3ca92ae3e_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#112;&#104;&#105;&#95;&#123;&#106;&#49;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"23\" style=\"vertical-align: -6px;\"\/> sont les poids des variables, contraints par <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-c0bb5da4a2678aa2885a3295446baaf3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#115;&#117;&#109;&#95;&#106;&#32;&#92;&#112;&#104;&#105;&#95;&#123;&#106;&#49;&#125;&#94;&#50;&#32;&#61;&#32;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"23\" width=\"85\" style=\"vertical-align: -8px;\"\/> : sans cette contrainte, la variance pourrait cro\u00eetre ind\u00e9finiment.<\/p>\n<p>La deuxi\u00e8me composante se construit de la m\u00eame fa\u00e7on, avec une exigence en plus : \u00eatre non corr\u00e9l\u00e9e \u00e0 la premi\u00e8re, donc orthogonale \u00e0 elle. On poursuit jusqu&rsquo;\u00e0 <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3bf85f1087e9fbed3a319341134ac1a2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> composantes, chacune orthogonale aux pr\u00e9c\u00e9dentes et capturant une part de variance de plus en plus faible.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef470eb889&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef470eb889\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1280\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-scaled.png\" alt=\"\u00c0 gauche, un nuage de points allong\u00e9 avec la droite orange PC1 qui suit son grand axe ; \u00e0 droite, les m\u00eames points projet\u00e9s sur cette seule droite\" class=\"wp-image-390\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-300x150.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-1024x512.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-768x384.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-1536x768.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_acp_composantes_principales_projection-2048x1024.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Compare les deux panneaux : \u00e0 droite, les observations s&rsquo;\u00e9talent sur toute la longueur de PC1, et c&rsquo;est cette \u00e9tendue que l&rsquo;ACP cherche \u00e0 rendre la plus grande possible. Le r\u00e9sultat est un r\u00e9sum\u00e9 en une dimension d&rsquo;un nuage qui en avait deux.<\/figcaption><\/figure>\n\n\n<h3>La recette en cinq temps<\/h3>\n<p>Concr\u00e8tement, une ACP suit cinq \u00e9tapes :<\/p>\n<ol>\n<li>pr\u00e9traiter les donn\u00e9es, c&rsquo;est-\u00e0-dire les centrer, et g\u00e9n\u00e9ralement les normaliser pour leur donner une variance unitaire ;<\/li>\n<li>calculer leur matrice de covariance ;<\/li>\n<li>en extraire les vecteurs propres et les valeurs propres ;<\/li>\n<li>s\u00e9lectionner les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"9\" style=\"vertical-align: 0px;\"\/> premi\u00e8res composantes, souvent <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-f4a0491bc051f361aa11be3e8c970d1c_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;&#32;&#61;&#32;&#50;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"41\" style=\"vertical-align: 0px;\"\/> pour une visualisation ;<\/li>\n<li>projeter les donn\u00e9es normalis\u00e9es sur ces composantes par une simple multiplication matricielle.<\/li>\n<\/ol>\n<p>La covariance mesure la variation lin\u00e9aire conjointe de deux variables <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4fb6b686ffd6dd2f2db81a3301cf015d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;&#95;&#104;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"18\" style=\"vertical-align: -3px;\"\/> et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-aafd54193f5a828ac3fc8300bbec5019_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;&#95;&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"17\" style=\"vertical-align: -3px;\"\/> sur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b170995d512c659d8668b4e42e1fef6b_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"11\" style=\"vertical-align: 0px;\"\/> observations :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 39px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-fb3307643bdf80fad82b0cc32fcf1bb9_l3.png\" height=\"39\" width=\"321\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#99;&#111;&#118;&#40;&#120;&#95;&#104;&#44;&#120;&#95;&#107;&#41;&#32;&#61;&#32;&#92;&#102;&#114;&#97;&#99;&#123;&#92;&#115;&#117;&#109;&#95;&#123;&#105;&#61;&#49;&#125;&#94;&#110;&#32;&#40;&#120;&#95;&#123;&#105;&#44;&#104;&#125;&#45;&#92;&#98;&#97;&#114;&#123;&#120;&#125;&#95;&#104;&#41;&#40;&#120;&#95;&#123;&#105;&#44;&#107;&#125;&#45;&#92;&#98;&#97;&#114;&#123;&#120;&#125;&#95;&#107;&#41;&#125;&#123;&#110;&#45;&#49;&#125;&#44;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>o\u00f9 <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b5198cc67b5f6c7d96dba6d054ac7afe_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#98;&#97;&#114;&#123;&#120;&#125;&#95;&#104;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"18\" style=\"vertical-align: -3px;\"\/> est la moyenne de la variable <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-14b463d0ecd5b350ced6cf1d6a12eef3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#104;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: 0px;\"\/>. Un signe positif ou n\u00e9gatif indique si elles \u00e9voluent ensemble ou \u00e0 contresens. Rassembl\u00e9es dans un tableau <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ecbff48f5d60d86ef07e77d5d012ef91_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"41\" style=\"vertical-align: -4px;\"\/>, ces covariances forment la <a href=\"\/blog\/maths\/qu-est-ce-qu-une-matrice-de-covariance\/\" title=\"matrice de covariance\">matrice de covariance<\/a> <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-14fb1e14301ad034b94e3db3ff52c0c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/>, toujours sym\u00e9trique (la covariance d&rsquo;une variable avec elle-m\u00eame est sa variance).<\/p>\n<p>Le r\u00e9sultat cl\u00e9 est que les composantes principales sont les vecteurs propres de <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-14fb1e14301ad034b94e3db3ff52c0c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/>, ordonn\u00e9s par valeurs propres d\u00e9croissantes <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-84929d3fb16816715ffb55cfa8fb83b6_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#49;&#32;&#92;&#103;&#101;&#32;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#50;&#32;&#92;&#103;&#101;&#32;&#92;&#100;&#111;&#116;&#115;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"103\" style=\"vertical-align: -3px;\"\/>. En maximisant la variance de la projection sous la contrainte d&rsquo;un axe de norme 1, on aboutit \u00e0<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 16px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-c64a807de09b1b0c4adbafde4c39fde7_l3.png\" height=\"16\" width=\"94\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#83;&#105;&#103;&#109;&#97;&#32;&#117;&#95;&#49;&#32;&#61;&#32;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#49;&#32;&#117;&#95;&#49;&#44;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>c&rsquo;est-\u00e0-dire que <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-c2fc519a802d0cd73a2b7a74f802833b_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#117;&#95;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"16\" style=\"vertical-align: -3px;\"\/> est un vecteur propre de <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-14fb1e14301ad034b94e3db3ff52c0c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/>. Et <strong>la variance captur\u00e9e \u00e9gale la valeur propre<\/strong> : la premi\u00e8re composante porte exactement <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-d8bad01e37d6a93d8d77801a4429e98e_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"16\" style=\"vertical-align: -3px;\"\/>.<\/p>\n<h3>Combien d&rsquo;axes garder ?<\/h3>\n<p>Chaque composante porte une part de la variance totale. Le rapport<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 44px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-65c2af61756a1769e95396f3c2a6c21f_l3.png\" height=\"44\" width=\"47\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#102;&#114;&#97;&#99;&#123;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#105;&#125;&#123;&#92;&#115;&#117;&#109;&#95;&#106;&#32;&#92;&#108;&#97;&#109;&#98;&#100;&#97;&#95;&#106;&#125;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>donne le pourcentage de variation captur\u00e9 par la <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-695d9d59bd04859c6c99e7feb11daab6_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"6\" style=\"vertical-align: 0px;\"\/>-i\u00e8me composante, et la somme de ces rapports sur les deux premi\u00e8res dit si une projection en deux dimensions reste fid\u00e8le aux donn\u00e9es d&rsquo;origine.<\/p>\n<p>On lit cette proportion de variance expliqu\u00e9e sur un <strong>scree plot<\/strong>, ou graphique d&rsquo;\u00e9boulis : il la trace pour chaque composante, par ordre d\u00e9croissant. On y cherche un coude, au-del\u00e0 duquel les composantes suppl\u00e9mentaires ne rajoutent plus qu&rsquo;une contribution marginale.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Pour les moineaux, les deux premi\u00e8res composantes portent pr\u00e8s de 83 % de la variance totale : c&rsquo;est ce chiffre qui autorise \u00e0 dessiner la carte en deux dimensions et \u00e0 y chercher les individus atypiques.<\/p>\n<\/blockquote>\n<h3>Le m\u00eame calcul en Python<\/h3>\n<p>Imagine maintenant que tu tiens un tableau de mesures, ici <code>USArrests<\/code>, d\u00e9j\u00e0 charg\u00e9, et que tu veux savoir combien d&rsquo;axes en r\u00e9sument l&rsquo;essentiel. Les blocs ci-dessous sont des sessions Python interactives : <code>In [n]:<\/code> marque une commande que tu tapes, num\u00e9rot\u00e9e dans l&rsquo;ordre de la session.<\/p>\n<pre><code>In [8]: scaler = StandardScaler(with_std=True,\n                                   with_mean=True)\n        USArrests_scaled = scaler.fit_transform(USArrests)\n        pcaUS = PCA()\n        pcaUS.fit(USArrests_scaled)\n\nIn [12]: pcaUS.explained_variance_ratio_\n<\/code><\/pre>\n<p><code>StandardScaler<\/code> centre et r\u00e9duit les variables, ce qui correspond \u00e0 la premi\u00e8re \u00e9tape de la recette ; <code>PCA()<\/code> calcule les composantes. L&rsquo;attribut <code>explained_variance_ratio_<\/code> donne la proportion de variance expliqu\u00e9e par chaque composante, dans l&rsquo;ordre d\u00e9croissant : ce sont exactement les valeurs du scree plot. Les coordonn\u00e9es des observations projet\u00e9es s&rsquo;obtiennent avec <code>.transform()<\/code>.<\/p>\n<h2 id=\"faire-des-paquets-k-moyennes-puis-dendrogramme\">Faire des paquets : k-moyennes puis dendrogramme<\/h2>\n<p>Le clustering a deux grandes approches : le partitionnement en k-moyennes (K-means) et le clustering hi\u00e9rarchique. Elles ne demandent pas le m\u00eame effort au d\u00e9part.<\/p>\n<h3>K-moyennes : fixer K, puis alterner deux gestes<\/h3>\n<p>Les k-moyennes exigent de <strong>fixer d&#8217;embl\u00e9e le nombre K de groupes<\/strong>. L&rsquo;algorithme cherche alors la partition en K groupes qui minimise la variation intra-groupe totale : la somme, pour chaque groupe, des distances au carr\u00e9 entre chaque observation et le centre de son groupe, appel\u00e9 centro\u00efde.<\/p>\n<p>Tester toutes les partitions est hors de port\u00e9e : il existe <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-394a24bbc165de9ad7cd456d57723442_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#75;&#94;&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"24\" style=\"vertical-align: 0px;\"\/> fa\u00e7ons de r\u00e9partir <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b170995d512c659d8668b4e42e1fef6b_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"11\" style=\"vertical-align: 0px;\"\/> observations en <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ea9c87a513e4a72624155d392fae86e2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#75;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: 0px;\"\/> groupes. On proc\u00e8de donc par un algorithme it\u00e9ratif <strong>qui alterne deux \u00e9tapes<\/strong>, \u00e0 partir d&rsquo;une affectation initiale al\u00e9atoire, jusqu&rsquo;\u00e0 ce qu&rsquo;aucune r\u00e9affectation ne change plus la partition :<\/p>\n<ul>\n<li>recalculer le centro\u00efde de chaque groupe, c&rsquo;est-\u00e0-dire la moyenne des observations qui lui sont affect\u00e9es ;<\/li>\n<li>r\u00e9affecter chaque observation au groupe dont le centro\u00efde est le plus proche.<\/li>\n<\/ul>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef470ec02f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef470ec02f\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2100\" height=\"1650\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement.png\" alt=\"Partitionnement en trois groupes (K = 3) : chaque croix noire est le centro\u00efde d'un groupe, cern\u00e9 d'une ellipse en pointill\u00e9s\" class=\"wp-image-391\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement.png 2100w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement-300x236.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement-1024x805.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement-768x603.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement-1536x1207.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_kmeans_partitionnement-2048x1609.png 2048w\" sizes=\"auto, (max-width: 2100px) 100vw, 2100px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Chaque croix est la moyenne des points de son groupe. Si tu la d\u00e9places, certains points se retrouvent plus pr\u00e8s d&rsquo;une autre croix et changent de groupe : c&rsquo;est exactement ce que l&rsquo;algorithme r\u00e9p\u00e8te jusqu&rsquo;\u00e0 stabilisation.<\/figcaption><\/figure>\n\n\n<h3>Le dendrogramme : ne pas fixer K<\/h3>\n<p>Le clustering hi\u00e9rarchique \u00e9vite de fixer K \u00e0 l&rsquo;avance. Son principe, dit agglom\u00e9ratif : on part de <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b170995d512c659d8668b4e42e1fef6b_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"11\" style=\"vertical-align: 0px;\"\/> groupes r\u00e9duits chacun \u00e0 une observation, et \u00e0 chaque \u00e9tape on fusionne les deux groupes les plus proches, jusqu&rsquo;\u00e0 n&rsquo;en garder qu&rsquo;un seul. La suite des fusions se dessine en <strong>dendrogramme<\/strong>, un arbre invers\u00e9 dont chaque jonction se place \u00e0 une hauteur proportionnelle \u00e0 la dissimilarit\u00e9 entre les deux groupes fusionn\u00e9s.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef470ec53e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef470ec53e\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2400\" height=\"1500\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme.png\" alt=\"Un dendrogramme : les jonctions du bas se font sous 1 de dissimilarit\u00e9, la derni\u00e8re fusion, tout en haut, vers 4,8\" class=\"wp-image-392\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme.png 2400w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme-300x188.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme-1024x640.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme-768x480.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme-1536x960.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch11_clustering_hierarchique_dendrogramme-2048x1280.png 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Lis l&rsquo;arbre de bas en haut : plus deux observations fusionnent bas, plus elles se ressemblent. La jonction la plus haute r\u00e9unit deux ensembles tr\u00e8s dissemblables, qui ne se rejoignent qu&rsquo;\u00e0 la derni\u00e8re \u00e9tape.<\/figcaption><\/figure>\n\n\n<p>Pour obtenir un nombre pr\u00e9cis de groupes, coupe l&rsquo;arbre horizontalement : plus la coupe est basse, plus tu obtiens de groupes. <strong>Un seul arbre donne tous les d\u00e9coupages<\/strong>, sans jamais relancer l&rsquo;algorithme.<\/p>\n<p>Reste une question : que veut dire \u00ab les deux groupes les plus proches \u00bb ? Il faut une dissimilarit\u00e9 non seulement entre observations (le plus souvent la distance euclidienne), mais aussi entre groupes : c&rsquo;est le r\u00f4le du <strong>linkage<\/strong>. Trois choix reviennent :<\/p>\n<ul>\n<li>le linkage complet retient la plus grande distance entre deux observations, une de chaque groupe ;<\/li>\n<li>le linkage moyen retient la distance moyenne entre toutes les paires ;<\/li>\n<li>le linkage simple retient la plus petite distance, et tend \u00e0 produire des cha\u00eenes \u00e9tir\u00e9es et d\u00e9s\u00e9quilibr\u00e9es.<\/li>\n<\/ul>\n<p>Les deux premiers sont les plus utilis\u00e9s, car ils produisent des dendrogrammes \u00e9quilibr\u00e9s.<\/p>\n<p>Passons \u00e0 la pratique, avec un tableau de mesures <code>X<\/code> d\u00e9j\u00e0 charg\u00e9 : deux groupes par k-moyennes, puis un arbre hi\u00e9rarchique complet.<\/p>\n<pre><code>In [24]: kmeans = KMeans(n_clusters=2,\n                            random_state=2,\n                            n_init=20).fit(X)\n         kmeans.labels_\n\nIn [31]: hc_comp = HClust(distance_threshold=0,\n                             n_clusters=None,\n                             linkage='complete')\n         hc_comp.fit(X)\n<\/code><\/pre>\n<p><code>n_clusters=2<\/code> demande deux groupes, et <code>n_init=20<\/code> multiplie les d\u00e9parts : on verra plus bas pourquoi c&rsquo;est une pr\u00e9caution. C\u00f4t\u00e9 hi\u00e9rarchique, <code>linkage='complete'<\/code> choisit le linkage complet, et <code>n_clusters=None<\/code> avec <code>distance_threshold=0<\/code> laisse l&rsquo;arbre se construire jusqu&rsquo;au bout, sans nombre de groupes fix\u00e9.<\/p>\n<h2 id=\"ou-le-non-supervise-se-glisse-dans-un-projet-de-prediction\">O\u00f9 le non supervis\u00e9 se glisse dans un projet de pr\u00e9diction<\/h2>\n<p>Un projet de donn\u00e9es n&rsquo;est pas une ligne droite : on collecte, on explore, on mod\u00e9lise, on pr\u00e9sente, et chaque \u00e9tape peut renvoyer \u00e0 la pr\u00e9c\u00e9dente, comme une roue qui tourne. Si la mod\u00e9lisation r\u00e9v\u00e8le qu&rsquo;il manque une caract\u00e9ristique importante, on retourne collecter des donn\u00e9es. C&rsquo;est \u00e0 l&rsquo;\u00e9tape d&rsquo;<strong>exploration<\/strong> que l&rsquo;ACP entre en sc\u00e8ne, pour visualiser des donn\u00e9es \u00e0 plusieurs dimensions, aux c\u00f4t\u00e9s d&rsquo;outils \u00e9l\u00e9mentaires comme les bo\u00eetes \u00e0 moustaches qui rep\u00e8rent la dispersion des valeurs.<\/p>\n<p>L&rsquo;ACP peut aussi se placer en amont d&rsquo;une pr\u00e9diction. La <a href=\"\/blog\/machine-learning\/le-principal-component-regression-pcr\/\" title=\"r\u00e9gression sur composantes principales (PCR)\">r\u00e9gression sur composantes principales (PCR)<\/a> construit <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-156b2eb1c82bbc119aca5f1ae9122029_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#77;&#32;&#60;&#32;&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"52\" style=\"vertical-align: -4px;\"\/> combinaisons lin\u00e9aires des pr\u00e9dicteurs, <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-74a4a0dbaab2127a3cd9a611006d8123_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#90;&#95;&#49;&#44;&#32;&#92;&#100;&#111;&#116;&#115;&#44;&#32;&#90;&#95;&#77;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"85\" style=\"vertical-align: -4px;\"\/>, qu&rsquo;elle confie ensuite \u00e0 une r\u00e9gression ordinaire. Ces combinaisons se fabriquent <strong>sans jamais regarder la r\u00e9ponse<\/strong> <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-82606c3098bb09002088b0f6f9ffbb2a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#89;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> : on parie que les directions de plus forte variance sont aussi les plus associ\u00e9es \u00e0 la r\u00e9ponse, pari raisonnable en pratique mais jamais garanti.<\/p>\n<p>Les moindres carr\u00e9s partiels (PLS) corrigent ce d\u00e9faut en construisant les combinaisons de fa\u00e7on supervis\u00e9e : la premi\u00e8re direction donne le plus grand poids aux pr\u00e9dicteurs les plus fortement corr\u00e9l\u00e9s \u00e0 la r\u00e9ponse. Mais PLS ne fait pas forc\u00e9ment mieux. Le gain en biais (l&rsquo;erreur d&rsquo;un mod\u00e8le trop simple) se paie souvent d&rsquo;une variance accrue (l&rsquo;estimation change davantage d&rsquo;un \u00e9chantillon \u00e0 l&rsquo;autre), et le b\u00e9n\u00e9fice net reste le plus souvent <strong>\u00e0 peu pr\u00e8s nul<\/strong>.<\/p>\n<p>Dans le code, la PCR s&rsquo;\u00e9crit en cha\u00eenant la r\u00e9duction de dimension et la r\u00e9gression lin\u00e9aire dans un m\u00eame <code>Pipeline<\/code>. <code>X<\/code> contient les pr\u00e9dicteurs, <code>Y<\/code> la r\u00e9ponse, et <code>M<\/code> le nombre de composantes \u00e0 garder.<\/p>\n<pre><code>In [24]: pca = PCA(n_components=M)\n         linreg = skl.LinearRegression()\n         pipe = Pipeline([('pca', pca),\n                            ('linreg', linreg)])\n         pipe.fit(X, Y)\n<\/code><\/pre>\n<p>Faire varier <code>n_components<\/code> et \u00e9valuer chaque pipeline par validation crois\u00e9e permet de retrouver le nombre optimal de composantes pour les donn\u00e9es consid\u00e9r\u00e9es.<\/p>\n<h2 id=\"quatre-idees-recues-sur-ce-que-ces-methodes-trouvent\">Quatre id\u00e9es re\u00e7ues sur ce que ces m\u00e9thodes trouvent<\/h2>\n<h3>\u00ab L&rsquo;algorithme trouve le meilleur d\u00e9coupage \u00bb<\/h3>\n<p>Les k-moyennes convergent toujours, mais vers un <strong>optimum local<\/strong>, jamais n\u00e9cessairement global : le r\u00e9sultat d\u00e9pend de l&rsquo;affectation initiale tir\u00e9e au hasard. D&rsquo;o\u00f9 la pr\u00e9caution <code>n_init=20<\/code> du code plus haut. On relance l&rsquo;algorithme depuis des d\u00e9parts diff\u00e9rents et on garde la solution qui minimise le plus la variation intra-groupe totale.<\/p>\n<h3>\u00ab Deux feuilles voisines se ressemblent \u00bb<\/h3>\n<p>Sur un dendrogramme, l&rsquo;ordre gauche-droite des feuilles n&rsquo;a aucune signification : chaque fusion peut pivoter librement sans changer la structure de l&rsquo;arbre. Deux observations c\u00f4te \u00e0 c\u00f4te ne sont donc pas forc\u00e9ment proches. <strong>Seule compte la hauteur<\/strong> \u00e0 laquelle elles fusionnent.<\/p>\n<h3>\u00ab L&rsquo;ACP choisit les bonnes variables \u00bb<\/h3>\n<p>La PCR n&rsquo;est pas une m\u00e9thode de s\u00e9lection de variables : chaque composante retenue reste une <strong>combinaison de tous les pr\u00e9dicteurs<\/strong> d&rsquo;origine. L&rsquo;ACP extrait de nouvelles caract\u00e9ristiques, alors que la s\u00e9lection se contente de retenir un sous-ensemble des attributs d&rsquo;origine, sans les combiner.<\/p>\n<p>Un exemple de s\u00e9lection : on calcule la corr\u00e9lation entre toutes les paires de caract\u00e9ristiques, on rep\u00e8re la paire la plus corr\u00e9l\u00e9e, on retire celle des deux dont la corr\u00e9lation moyenne avec les autres est la plus \u00e9lev\u00e9e, puis on recommence jusqu&rsquo;\u00e0 ce qu&rsquo;aucune corr\u00e9lation ne d\u00e9passe le seuil fix\u00e9.<\/p>\n<h3>\u00ab Normaliser, c&rsquo;est de la cosm\u00e9tique \u00bb<\/h3>\n<p>Centrer les donn\u00e9es place l&rsquo;origine au centre du nuage et facilite l&rsquo;interpr\u00e9tation. Normaliser, c&rsquo;est donner \u00e0 chaque variable une variance unitaire : cela \u00e9vite qu&rsquo;une caract\u00e9ristique domine le calcul parce que son unit\u00e9 produit de grandes valeurs. Or r\u00e9p\u00e9ter l&rsquo;ACP avant puis apr\u00e8s normalisation peut conduire \u00e0 des <strong>directions principales sensiblement diff\u00e9rentes<\/strong>, car la normalisation change la contribution de chaque dimension \u00e0 la variance totale.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Un apprentissage non supervis\u00e9 ne rend pas de verdict : il propose des axes et des groupes dont la forme d\u00e9pend de r\u00e9glages que tu fixes, du point de d\u00e9part des k-moyennes au linkage, en passant par la normalisation.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Des donn\u00e9es, aucune r\u00e9ponse \u00e0 pr\u00e9dire : d\u00e9couvre comment l&rsquo;apprentissage non supervis\u00e9 fait \u00e9merger des axes et des groupes, avec l&rsquo;ACP et les k-moyennes.<\/p>\n","protected":false},"author":1,"featured_media":393,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-394","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-learning"],"_links":{"self":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/comments?post=394"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/394\/revisions"}],"predecessor-version":[{"id":788,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/394\/revisions\/788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/393"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}