У меня есть две части многомерного набора данных, давайте назовем их train
и test
. И я хочу построить модель, основанную на наборе данных поезда, а затем проверить ее на наборе тестовых данных. Количество кластеров известно.
Я попытался применить кластеризацию k-средних в R, и я получил объект, который содержит центры кластеров:
kClust <- kmeans(train, centers=N, nstart=M)
Есть ли в R функция, которая берет центры кластеров, которые были найдены, и назначает кластеры моему тестовому набору данных?
Какие еще методы / алгоритмы я могу попробовать?
r
clustering
k-means
user2598356
источник
источник
Ответы:
Вы можете вычислить назначения кластера для нового набора данных с помощью следующей функции:
или вы можете использовать пакет flexclust , в котором реализован
predict
метод для k-средних:Существуют также методы преобразования для преобразования результатов функций кластера, таких как
stats::kmeans
или,cluster::pam
в объекты классаkcca
и наоборот:источник
stepFlexclust
Функция работает алгоритмы кластеризации повторно для различного количества кластеров и возвращает минимальное расстояние в пределах кластера решения для каждого из них.шаг1: функция, вычисляющая расстояние между вектором и каждой строкой матрицы
шаг 2: функция, которая применяет компьютер vec2mat к каждой строке input_matrix
шаг 3. применить функцию mat2mat
step4. При желании используйте plyr :: ddply и doMC для распараллеливания mat2mat для большого набора данных
источник