0

J'utilise un algorithme de Lloyd modifié pour obtenir des sorties de taille de cluster égales en kmeans avec k = 2. ci-après le pseudo-code:L'algorithme de Kmeans pour k = 2 qui donne des sorties de taille de cluster égales

- Randomly choose 2 points as initialization for the 2 clusters (denoted as c1, c2) 
- Repeat below steps until convergence 
    - Sort all points xi according to ascending values of ||xi-c1|| - ||xi-c2||, i.e. differences in distances to the first and the second cluster 
    - Put top 50% points in cluster 1 , others in cluster 2 
    - Recalculate centroids as average of the allocated points (as usual in Lloyd's) 

Maintenant, l'algorithme ci-dessus fonctionne bien pour moi de manière empirique:

  1. Il donne des grappes équilibrées
  2. Il diminue toujours l'objectif

a une telle un algorithme a été proposé ou analysé auparavant dans la littérature? Puis-je obtenir des références s'il vous plaît?

Répondre

2

Une version plus générale pour plus de 2 groupes est expliqué ici:

https://elki-project.github.io/tutorial/same-size_k_means

j'ai vu k-means avec des contraintes différentes tailles à plusieurs reprises dans la littérature, mais je n'ai aucune référence à main. Je ne suis pas convaincu de cela: forcer les grappes à avoir la même taille contredit l'idée de k-means de trouver la meilleure approximation des moindres carrés à mon humble avis, car cela signifie délibérément choisir une approximation pire.

+0

Merci pour votre référence! À mon avis, il y a une différence cruciale entre mon algorithme et celui de la référence: Pour k = 2, l'étape d'attribution de points peut être résolue exactement comme ci-dessus, tandis que pour le plus général k> 2, elle ne semble pas être le cas. Par conséquent, dans le lien ci-dessus, ils utilisent une procédure d'échange de points locale qui est inutile lorsque k = 2. Je voulais savoir si la preuve du cas de k = 2 existe quelque part .. – vervenumen

+0

Je ne pense pas que le cas k = 2 soit d'un grand intérêt; parce qu'on cherche habituellement plus de grappes. J'ai certainement vu ce genre d'opération pour k = 2 en indexation métrique. –