J'ai un ensemble de données, je veux créer des clusters sur ces données en fonction d'une seule variable (il n'y a pas de valeurs manquantes). Je veux créer 3 clusters basés sur cette variable.
Quel algorithme de clustering utiliser, k-means, EM, DBSCAN etc.?
Ma question principale est, dans quelles circonstances dois-je utiliser k-means sur EM ou EM over k-means?
clustering
Ali
la source
la source
Réponses:
L'algorithme K-means et l'algorithme EM vont être assez similaires pour le clustering 1D.
Dans K-means, vous commencez par deviner où se trouvent les moyennes et affectez chaque point au cluster avec la moyenne la plus proche, puis vous recalculez les moyennes (et les variances) en fonction des attributions actuelles de points, puis mettez à jour l'assignation des points, puis mettez à jour les moyens ...
Dans EM, vous commencez également par deviner où se trouvent les moyennes, puis vous calculez la valeur attendue des affectations (essentiellement la probabilité que chaque point se trouve dans chaque cluster), puis vous mettez à jour les moyennes estimées (et les variances) en utilisant les valeurs attendues comme poids, puis calculez les nouvelles valeurs attendues, puis calculez les nouveaux moyens, ...
La principale différence est que l'attribution des points aux grappes dans les moyennes K est un tout ou rien, où EM donne des proportions / probabilité d'appartenance à un groupe (un point peut être considéré comme ayant une probabilité de 80% d'être dans le groupe A, une probabilité de 18% d'être dans le groupe B, et 2% de probabilité d'être dans le groupe C). S'il y a beaucoup de séparation entre les groupes, les 2 méthodes vont donner des résultats assez similaires. Mais s'il y a un bon chevauchement, l'EM donnera probablement des résultats plus significatifs (encore plus si la variance / l'écart-type présente un intérêt). Mais si tout ce qui vous intéresse est d'attribuer l'appartenance à un groupe sans se soucier des paramètres, alors K-means est probablement plus simple.
Pourquoi ne pas faire les deux et voir à quel point les réponses sont différentes? s'ils sont similaires, optez pour le plus simple, s'ils sont différents, décidez de comparer le regroupement aux données et aux connaissances externes.
la source
EM est meilleur que k-means en termes de résultats.
K-means, cependant, a un temps d'exécution plus rapide.
Ils produiront des résultats similaires si les matrices d'écart type / covariance sont approximativement égales. Si vous pensez que c'est vrai, utilisez k-means.
DBSCAN est utilisé lorsque les données ne sont pas gaussiennes. Si vous utilisez des données à 1 dimension, cela n'est généralement pas applicable, car une approximation gaussienne est généralement valide en 1 dimension.
la source
Une autre façon simple consiste à utiliser essentiellement le tri du tableau 1D: c'est-à-dire itérer sur chaque point et obtenir les valeurs qui sont à une distance minimale de celui-ci dans les directions positive et négative. Par exemple:
donnera:
Quels points, que les éléments proches d'un point particulier sont essentiellement sous son groupe. La seule chose à méditer dans cette technique est la variable k, qui est la taille fixe du cluster :-).
la source
S'il n'y a qu'une seule variable, pas besoin de clustering. Vous pouvez facilement regrouper vos observations en fonction de la distribution de la variable.
Ou est-ce que je manque quelques points ici?
la source