J'ai deux parties d'un ensemble de données multidimensionnelles, appelons-les train
et test
. Et je veux construire un modèle basé sur l'ensemble de données du train, puis le valider sur l'ensemble de données de test. Le nombre de clusters est connu.
J'ai essayé d'appliquer le clustering k-means dans R et j'ai obtenu un objet qui contient les centres des clusters:
kClust <- kmeans(train, centers=N, nstart=M)
Y a-t-il une fonction dans R qui prend les centres des clusters trouvés et affecte des clusters à mon ensemble de données de test?
Quelles sont les autres méthodes / algorithmes que je peux essayer?
r
clustering
k-means
user2598356
la source
la source
Réponses:
Vous pouvez calculer les affectations de cluster pour un nouvel ensemble de données avec la fonction suivante:
ou vous pouvez utiliser le package flexclust , qui a une
predict
méthode implémentée pour k-means:Il existe également des méthodes de conversion pour convertir les résultats des fonctions de cluster comme
stats::kmeans
oucluster::pam
en objets de classekcca
et vice versa:la source
stepFlexclust
fonction exécute des algorithmes de clustering à plusieurs reprises pour différents nombres de clusters et renvoie la solution de distance minimale à l'intérieur du cluster pour chacun.step1: une fonction calculant la distance entre un vecteur et chaque ligne d'une matrice
étape 2: une fonction qui applique l'ordinateur vec2mat à chaque ligne de la matrice d'entrée
étape 3. appliquer la fonction mat2mat
étape 4. Utilisez éventuellement plyr :: ddply et doMC pour paralléliser mat2mat pour un ensemble de données volumineux
la source