Я понимаю разницу между K Medoid и K означает. Но можете ли вы привести пример с небольшим набором данных, в котором выходной сигнал k medoid отличается от выходного сигнала k означает?
Я понимаю разницу между K Medoid и K означает. Но можете ли вы привести пример с небольшим набором данных, в котором выходной сигнал k medoid отличается от выходного сигнала k означает?
Ответы:
k-medoid основан на medoids (который является точкой, которая принадлежит набору данных), вычисляемой путем минимизации абсолютного расстояния между точками и выбранным центроидом, а не минимизацией квадратного расстояния. В результате он более устойчив к шуму и выбросам, чем k-средних.
Вот простой надуманный пример с 2 кластерами (игнорируйте обратные цвета)
Как видите, медиоиды и центроиды (от k-средних) немного отличаются в каждой группе. Также вы должны заметить, что каждый раз, когда вы запускаете эти алгоритмы, из-за случайных начальных точек и природы алгоритма минимизации вы получите немного разные результаты. Вот еще один прогон:
И вот код:
library(cluster)
x <- rbind(matrix(rnorm(100, mean = 0.5, sd = 4.5), ncol = 2),
matrix(rnorm(100, mean = 0.5, sd = 0.1), ncol = 2))
colnames(x) <- c("x", "y")
# using 2 clusters because we know the data comes from two groups
cl <- kmeans(x, 2)
kclus <- pam(x,2)
par(mfrow=c(1,2))
plot(x, col = kclus$clustering, main="Kmedoids Cluster")
points(kclus$medoids, col = 1:3, pch = 10, cex = 4)
plot(x, col = cl$cluster, main="Kmeans Cluster")
points(cl$centers, col = 1:3, pch = 10, cex = 4)
pam
метод (пример реализации K-medoids в R), использованный выше, по умолчанию использует евклидово расстояние в качестве метрики. К-значит всегда использует квадрат Евклидова. Медоиды в K-medoids выбираются из элементов кластера, а не из целого пространства точек, как центроиды в K-средних.
Алгоритмы k-средних и k-медоидов разбивают набор данных на k групп. Кроме того, они оба пытаются минимизировать расстояние между точками одного кластера и конкретной точкой, которая является центром этого кластера. В отличие от алгоритма k-средних, алгоритм k-medoids выбирает точки в качестве центров, которые принадлежат набору данных. Наиболее распространенной реализацией алгоритма кластеризации k-medoids является алгоритм Partitioning Around Medoids (PAM). Алгоритм PAM использует жадный поиск, который может не найти глобального оптимального решения. Медоиды более устойчивы к выбросам, чем центроиды, но им нужно больше вычислений для данных больших размеров.