Ich starte kmeans in Matlab auf einer 400x1000 Matrix und aus irgendeinem Grund bekomme ich verschiedene Ergebnisse wenn ich den Algorithmus starte. Unten ist ein Codebeispiel:
%Vor%Aus irgendeinem Grund bekomme ich jedes Mal, wenn ich diesen Code ausführe, unterschiedliche Ergebnisse? irgendwelche Ideen?
Ich verwende es, um Multikollinearitätsprobleme zu identifizieren.
Danke für die Hilfe!
Die k-means-Implementierung in MATLAB hat eine randomisierte Komponente: die Auswahl der Anfangszentren. Dies führt zu unterschiedlichen Ergebnissen. In der Praxis läuft MATLAB jedoch mehrere Male k-means und gibt Ihnen das Clustering mit der geringsten Verzerrung zurück. Wenn Sie jedes Mal sehr unterschiedliche Clusterings sehen, kann dies bedeuten, dass Ihre Daten nicht der Art von Clustern (sphärisch) zugänglich sind, nach denen k-means sucht, und dies ist ein Hinweis darauf, andere Clusteralgorithmen (z. B. spektrale) auszuprobieren.
Sie können ein deterministisches Verhalten erhalten, indem Sie eine erste Menge von Zentren als eines der Funktionsargumente (die ) übergeben start
-Parameter ). Dadurch erhalten Sie jedes Mal die gleiche Ausgabeclusterung. Es gibt mehrere Heuristiken, um den ersten Satz von Zentren zu wählen (zB K-means ++ ).
Wie Sie auf dem Wiki lesen können, sind k-Means Algorithmen in der Regel heuristisch und teilweise probabilistisch in Matlab ist keine Ausnahme.
Dies bedeutet, dass es einen bestimmten zufälligen Teil zum Algorithmus gibt (in Matlabs Fall , wiederholt zufällige Startpunkte, um die globale Lösung zu finden). Dies macht kmeans
-Ausgabecluster, die im Durchschnitt von guter Qualität sind. Aber: Angesichts der pseudozufälligen Natur des Algorithmus erhalten Sie jedes Mal leicht unterschiedliche Cluster - das ist normales Verhalten.
Dies wird Initialisierungsproblem genannt, da Kmeans mit zufälligen Anfangspunkten beginnt, um Ihre Daten zu gruppieren. Matlab wählt k zufällige Punkte aus und berechnet die Entfernung von Punkten in Ihren Daten zu diesen Orten und findet neue Zentroide, um die Entfernung weiter zu minimieren. Sie erhalten also möglicherweise andere Ergebnisse für Schwerpunktorte, aber die Antwort ist ähnlich.
Tags und Links matlab k-means feature-selection