Un algorithme de clustering typique est k-means. Puisque k-means est un algorithme très simple, il peut conduire à des résultats de clustering malheureux. Par conséquent, dans cet article, nous présenterons l'implémentation du noyau k-means qui mappe l'espace de données à une dimension supérieure par une fonction non linéaire et effectue le clustering.
J'ai essayé de regrouper les données suivantes avec k-means.
En un coup d'œil, il semble qu'il y ait deux groupes dans la partie centrale et la partie extérieure, mais le résultat de regroupement de k-means est comme être séparé par une ligne droite.
kernel k-means Dans le noyau k-means, l'espace de données est mappé à une dimension élevée par une fonction non linéaire et le clustering est effectué. En d'autres termes, lorsque les points de données sont $ x \ dans X $ et la fonction non linéaire $ \ phi $, le clustering est effectué pour $ \ phi (x) $. Il y a plusieurs façons de choisir la fonction non linéaire $ \ phi $, mais plutôt que de choisir $ \ phi $, la fonction du noyau $ k (x_i, x_j) = \ phi (x_i) ^ T \ phi (x_j) $ Est souvent sélectionné (méthode du noyau).
Les fonctions du noyau sont les suivantes.
Le choix d'un noyau linéaire équivaut à k-means.
J'ai essayé de regrouper les données précédentes avec kernel k-means. J'ai défini le noyau gaussien pour la fonction noyau et 0,1 pour la valeur de $ \ gamma $. Le code source a été téléchargé sur ici.
Vous pouvez voir que le regroupement est possible entre la partie centrale et la partie extérieure.
Puisque les k-moyennes et les k-moyennes du noyau sont des algorithmes qui dépendent largement des valeurs initiales, il n'est pas toujours possible de se regrouper de cette manière. Dans kernel k-means, il est nécessaire de sélectionner les fonctions du noyau et de définir des hyper paramètres ...
(2015/7/2 Corrigé que le chiffre était légèrement différent)
Recommended Posts