Quelle bonne question, c'est une occasion de montrer comment on inspecterait les inconvénients et les hypothèses de toute méthode statistique. À savoir: créer des données et essayer l'algorithme!
Nous examinerons deux de vos hypothèses et verrons ce qu'il advient de l'algorithme k-means lorsque ces hypothèses sont brisées. Nous nous en tiendrons aux données bidimensionnelles, car elles sont faciles à visualiser. (Grâce à la malédiction de la dimensionnalité , l’ajout de dimensions supplémentaires est susceptible de rendre ces problèmes plus graves, pas moins). Nous allons travailler avec le langage de programmation statistique R: vous pouvez trouver le code complet ici (et le message sous forme de blog ici ).
Détournement: Quatuor d'Anscombe
Tout d'abord, une analogie. Imaginez que quelqu'un soutienne ce qui suit:
J'ai lu des informations sur les inconvénients de la régression linéaire, à savoir qu'elle s'attend à une tendance linéaire, que les résidus sont normalement distribués et qu'il n'y a pas de valeurs aberrantes. Mais tout ce que la régression linéaire fait est de minimiser la somme des erreurs au carré (SSE) de la ligne prédite. C'est un problème d'optimisation qui peut être résolu quelles que soient la forme de la courbe ou la distribution des résidus. Ainsi, la régression linéaire ne nécessite aucune hypothèse pour fonctionner.
Eh bien, oui, la régression linéaire fonctionne en minimisant la somme des résidus au carré. Mais ce n’est pas en soi l’objectif d’une régression: nous essayons de tracer une ligne servant de prédicteur fiable et non biaisé de y et basé sur x . Le théorème de Gauss-Markov nous dit que réduire au minimum l'ESS permet d'atteindre cet objectif, mais ce théorème repose sur des hypothèses très spécifiques. Si ces hypothèses sont brisées, vous pouvez toujours minimiser l'ESS, mais cela pourrait ne pas être le cas.n'importe quoi. Imaginez: "Vous conduisez une voiture en appuyant sur la pédale: la conduite est essentiellement un processus consistant à" pousser la pédale ". La pédale peut être actionnée peu importe la quantité d'essence dans le réservoir. Par conséquent, même si le réservoir est vide, vous pouvez toujours appuyer sur la pédale et conduire la voiture. "
Mais parler n’est pas cher. Regardons les données froides et difficiles. Ou en fait, des données inventées.
Ce sont en fait mes données inventées préférées : le Quatuor d'Anscombe . Créée en 1973 par le statisticien Francis Anscombe, cette délicieuse concoction illustre la folie de la confiance aveugle en méthodes statistiques. Chacun des jeux de données a la même pente de régression linéaire, l'interception, la valeur p et - et pourtant, nous pouvons voir qu'un seul d'entre eux, I , convient à la régression linéaire. Dans II, cela suggère une mauvaise forme, dans III, il est faussé par une seule valeur aberrante - et dans IV, il n'y a clairement aucune tendance!R2
On pourrait dire "La régression linéaire fonctionne toujours dans ces cas, car elle minimise la somme des carrés des résidus." Mais quelle victoire à la Pyrrhus ! La régression linéaire va toujours tracer une ligne, mais si c'est une ligne sans signification, qui s'en soucie?
Nous voyons donc maintenant que le fait d’optimiser ne signifie pas que nous atteignons notre objectif. Et nous voyons que la constitution de données et leur visualisation constituent un bon moyen de contrôler les hypothèses d'un modèle. Accrochez-vous à cette intuition, nous en aurons besoin dans une minute.
Hypothèse cassée: données non sphériques
Vous soutenez que l'algorithme k-means fonctionnera bien sur des grappes non sphériques. Des groupes non sphériques comme ... ceux-ci?
Ce n’est peut-être pas ce à quoi vous vous attendiez, mais c’est un moyen parfaitement raisonnable de construire des grappes. En regardant cette image, nous, les humains, reconnaissons immédiatement deux groupes de points naturels - il n’ya pas de doute. Voyons maintenant comment k-means fonctionne: les affectations sont affichées en couleur, les centres imputés en X.
Eh bien, ce n'est pas correct. K-means essayait de placer une cheville carrée dans un trou rond - en essayant de trouver de beaux centres entourés de sphères soignées - et cela a échoué. Oui, cela minimise toujours la somme des carrés au sein de la grappe, mais comme dans le Quatuor d'Anscombe ci-dessus, c'est une victoire à la Pyrrhus!
Vous pourriez dire "Ce n'est pas un exemple juste ... aucune méthode de clustering ne peut correctement trouver des clusters aussi bizarres." Pas vrai! Essayez la mise en cluster hiérarchique à liaison simple :
J'y suis arrivé! En effet, la mise en grappe hiérarchique à liaison unique établit les bonnes hypothèses pour cet ensemble de données. (Il y a toute une autre classe de situations où cela échoue).
Vous pourriez dire "C'est un cas unique, extrême, pathologique." Mais ce n'est pas! Par exemple, vous pouvez faire du groupe externe un demi-cercle au lieu d'un cercle, et vous verrez que k-means continue à faire terriblement (et que le regroupement hiérarchique fonctionne toujours bien). Je pourrais facilement évoquer d'autres situations problématiques, et ce en deux dimensions seulement. Lorsque vous regroupez des données 16 dimensions, toutes sortes de pathologies peuvent survenir.
Enfin, je dois noter que k-means est toujours récupérable! Si vous commencez par transformer vos données en coordonnées polaires , le regroupement fonctionne désormais:
C'est pourquoi la compréhension des hypothèses sous-jacentes à une méthode est essentielle: elle ne vous dit pas seulement quand une méthode présente des inconvénients, elle vous indique également comment les corriger.
Hypothèse cassée: grappes de taille inégale
Que se passe-t-il si les grappes ont un nombre impair de points - est-ce que cela empêche également la formation de grappes k-signifie? Eh bien, considérons cet ensemble de grappes, de tailles 20, 100, 500. J'ai généré chacune à partir d'une gaussienne multivariée:
Cela ressemble à k-means pourrait probablement trouver ces clusters, non? Tout semble être généré dans des groupes bien rangés. Essayons donc k-means:
Aie. Ce qui s'est passé ici est un peu plus subtil. Dans sa quête pour minimiser la somme des carrés à l'intérieur des grappes, l'algorithme k-means donne plus de "poids" aux grappes plus grandes. En pratique, cela signifie que nous sommes heureux de laisser ce petit groupe atterrir loin de tout centre, tout en utilisant ces centres pour "scinder" un groupe beaucoup plus grand.
Si vous jouez un peu avec ces exemples ( code R ici! ), Vous verrez que vous pouvez construire beaucoup plus de scénarios où k-means obtient une fausse embarrassante.
Conclusion: pas de repas gratuit
Il existe une construction charmante dans le folklore mathématique, formalisée par Wolpert et Macready , appelée "Théorème sans repas gratuit". Il est probablement mon théorème favori dans la philosophie de l' apprentissage machine, et je savoure la moindre chance de l' amener (ai - je mentionné que j'aime cette question?) L'idée de base est déclaré (non rigoureusement) comme ceci: « en moyenne dans toutes les situations possibles, chaque algorithme fonctionne aussi bien. "
Son contre-intuitif? Considérez que pour chaque cas où un algorithme fonctionne, je pourrais construire une situation où il échoue terriblement. La régression linéaire suppose que vos données se situent sur une ligne - mais que se passe-t-il si elle suit une onde sinusoïdale? Un test t suppose que chaque échantillon provient d'une distribution normale: et si vous ajoutiez une valeur aberrante? Tout algorithme d’ascension de gradient peut être piégé dans des maxima locaux, et toute classification supervisée peut être trompée en surapprentissage.
Qu'est-ce que ça veut dire? Cela signifie que ces hypothèses sont la source de votre pouvoir! Lorsque Netflix vous recommande des films, vous supposez que si vous aimez un film, vous aimerez ceux qui sont similaires (et vice-versa). Imaginez un monde où ce n'était pas vrai et où vos goûts sont parfaitement aléatoires: dispersés au hasard parmi les genres, les acteurs et les réalisateurs. Leur algorithme de recommandation échouerait terriblement. Serait-il logique de dire "Eh bien, cela minimise toujours une erreur au carré attendue, donc l'algorithme fonctionne toujours"? Vous ne pouvez pas créer d'algorithme de recommandation sans émettre certaines hypothèses sur les goûts des utilisateurs, tout comme vous ne pouvez pas créer d'algorithme de clustering sans émettre des hypothèses sur la nature de ces clusters.
Alors n'acceptez pas ces inconvénients. Connaissez-les afin qu'ils puissent éclairer votre choix d'algorithmes. Comprenez-les, vous pourrez ainsi peaufiner votre algorithme et transformer vos données pour les résoudre. Et aimez-les, parce que si votre modèle ne peut jamais se tromper, cela signifie qu'il ne sera jamais juste.