2017-11-21 5 views
0

Ich habe einen 2-dimensionalen Datensatz mit mehreren Punkten (sagen wir 100), jeder mit x und y-Koordinate in MATLAB. Ich muss diese Punkte um einige vordefinierte Punkte (sagen wir 5) gruppieren, je nach dem nächsten Nachbarn (Euklidische Entfernung). Jeder vordefinierte Punkt hat jedoch eine Begrenzung für die Anzahl der damit verbundenen Punkte. für Beispiel der vordefinierte Punkt 1 sollte einen Cluster von 20 Punkten aus dem Datensatz haben, der zweite sollte 10, der dritte sollte 30 usw. haben, ohne sich zu überlappen, und jeder Punkt sollte klassifiziert werden. Gibt es irgendeine Funktion, die ich dazu verwenden kann? Im normalen Clustering kann ich die Größe eines einzelnen Clusters nicht definieren. Vielen Dank im Voraus.Clustering von Daten

+0

Bitte geben Sie Ihre Programmiersprache an, geben Sie einen Code an (Ihre Versuche) usw. [Wie stelle ich eine gute Frage?] (Https://stackoverflow.com/help/how-to-ask) –

+0

Entschuldigung für den Fehler . Ich benutze MATLAB und ich habe ISODATA sowie Kmean-Methode verwendet, aber ich kann die Größe des Clusters nicht angeben. –

Antwort

0

Sie können knnsearch in MATLAB verwenden, um die nächsten Nachbarn zu finden. https://ch.mathworks.com/help/stats/knnsearch.html

Geben Sie daher einen Bezugspunkt an und wählen Sie die Anzahl der nächstgelegenen Punkte. Die Nichtüberlappung muss in einem zweiten Schritt angegangen werden.