Mam dwie części wielowymiarowego zestawu danych, nazwijmy je train
itest
. Chcę zbudować model na podstawie zestawu danych pociągu, a następnie zweryfikować go na zestawie danych testowych. Liczba klastrów jest znana.
Próbowałem zastosować klastrowanie k-średnich w R i otrzymałem obiekt zawierający centra klastrów:
kClust <- kmeans(train, centers=N, nstart=M)
Czy w R jest funkcja, która bierze centra znalezionych klastrów i przypisuje klastry do mojego zestawu danych testowych?
Jakie inne metody / algorytmy mogę wypróbować?
r
clustering
k-means
użytkownik2598356
źródło
źródło
Odpowiedzi:
Możesz obliczyć przypisania klastra dla nowego zestawu danych za pomocą następującej funkcji:
lub możesz użyć pakietu flexclust , który ma zaimplementowaną
predict
metodę dla k-średnich:Istnieją również metody konwersji do konwersji wyników z funkcji klastrowych takich jak
stats::kmeans
lubcluster::pam
na obiekty klasykcca
i odwrotnie:źródło
stepFlexclust
Funkcja prowadzi grupowanie wielokrotnie algorytmy dla różnej liczby klastrów i zwraca co najmniej w roztworze odległość dla każdego klastra.krok 1: funkcja obliczająca odległość między wektorem a każdym rzędem macierzy
krok 2: funkcja, która stosuje komputer vec2mat do każdego wiersza input_matrix
krok 3. zastosuj funkcję mat2mat
krok 4. Opcjonalnie użyj plyr :: ddply i doMC, aby zrównoleglić mat2mat dla dużego zestawu danych
źródło