Ich habe zwei Teile eines mehrdimensionalen Datensatzes, nennen wir sie train
und test
. Und ich möchte ein Modell auf der Grundlage des Zugdatensatzes erstellen und es dann anhand des Testdatensatzes validieren. Die Anzahl der Cluster ist bekannt.
Ich habe versucht, k-means Clustering in R anzuwenden, und ich habe ein Objekt erhalten, das die Clusterzentren enthält:
kClust <- kmeans(train, centers=N, nstart=M)
Gibt es eine Funktion in R, die die Zentren der gefundenen Cluster aufnimmt und meinem Testdatensatz Cluster zuordnet?
Welche anderen Methoden / Algorithmen kann ich ausprobieren?
r
clustering
k-means
user2598356
quelle
quelle
Antworten:
Sie können die Clusterzuordnungen für einen neuen Datensatz mit der folgenden Funktion berechnen:
oder Sie können das Paket flexclust verwenden , das eine implementierte
predict
Methode für k-means enthält:Es gibt auch Konvertierungsmethoden, um die Ergebnisse von Clusterfunktionen wie
stats::kmeans
odercluster::pam
in Klassenobjektekcca
und umgekehrt zu konvertieren :quelle
stepFlexclust
Funktion führt Clustering-Algorithmen wiederholt für eine unterschiedliche Anzahl von Clustern aus und gibt jeweils das Minimum innerhalb der Cluster-Distanz-Lösung zurück.Schritt 1: Eine Funktion, die den Abstand zwischen einem Vektor und jeder Zeile einer Matrix berechnet
Schritt 2: Eine Funktion, die den vec2mat-Computer auf jede Zeile der input_matrix anwendet
Schritt 3. Wenden Sie die mat2mat-Funktion an
Schritt 4. Verwenden Sie optional plyr :: ddply und doMC, um mat2mat für große Datenmengen zu parallelisieren
quelle