Um exemplo em que a saída do algoritmo k-medóide é diferente da saída do algoritmo k-means

10

Entendo a diferença entre k medóide e k significa. Mas você pode me dar um exemplo com um pequeno conjunto de dados em que a saída medóide k é diferente de k significa saída.

tubby
fonte

Respostas:

13

O k-medoid é baseado no medoids (que é um ponto que pertence ao conjunto de dados) calculado minimizando a distância absoluta entre os pontos e o centróide selecionado, em vez de minimizar a distância quadrada. Como resultado, é mais robusto a ruídos e outliers do que o k-means.

Aqui está um exemplo simples e artificial com 2 grupos (ignore as cores invertidas) Kmeans vs. Kmedoids

Como você pode ver, os medoóides e centróides (de k-médias) são ligeiramente diferentes em cada grupo. Além disso, observe que toda vez que você executa esses algoritmos, devido aos pontos de partida aleatórios e à natureza do algoritmo de minimização, você obtém resultados ligeiramente diferentes. Aqui está outra corrida:

insira a descrição da imagem aqui

E aqui está o código:

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)

ilanman
fonte
11
@frc, se você acha que a resposta de alguém está incorreta, não a edite para corrigi-la. Você pode deixar um comentário (quando seu representante for> 50), e / ou voto negativo. Sua melhor opção é postar sua própria resposta com o que você acredita ser a informação correta (cf, aqui ).
gung - Restabelece Monica
2
O K-medoids minimiza uma distância escolhida arbitrariamente (não necessariamente uma distância absoluta) entre elementos agrupados e o medóide. Na verdade, o pammétodo (um exemplo de implementação de K-medoids em R) usado acima, por padrão, usa a distância euclidiana como métrica. K-significa sempre usa o euclidiano ao quadrado. Os medoides no K-medoids são escolhidos dentre os elementos do cluster, e não em um espaço inteiro de pontos como centróides no K-mean.
hannafrc
11
Não tenho reputação suficiente para comentar, mas queria mencionar que há um erro nas parcelas da resposta de Ilanman: ele executou todo o código, de modo que os dados foram modificados. Se você executar apenas a parte de cluster do código, os clusters serão bastante estáveis, mais estáveis ​​para o PAM do que para o k-means.
Julien Colomb
6

Um medóide tem que ser um membro do conjunto, um centróide não.

Os centróides são normalmente discutidos no contexto de objetos sólidos e contínuos, mas não há razão para acreditar que a extensão para amostras discretas exigiria que o centróide fosse um membro do conjunto original.

headdab
fonte
1

Os algoritmos k-means e k-medoids estão dividindo o conjunto de dados em k grupos. Além disso, ambos estão tentando minimizar a distância entre os pontos do mesmo cluster e um ponto específico que é o centro desse cluster. Em contraste com o algoritmo k-means, o algoritmo k-medoids escolhe pontos como centros que pertencem ao dastaset. A implementação mais comum do algoritmo de clustering k-medoids é o algoritmo Partitioning Around Medoids (PAM). O algoritmo PAM usa uma pesquisa gananciosa que pode não encontrar a solução ideal global. Os medóides são mais robustos para os outliers do que os centróides, mas precisam de mais computação para dados de alta dimensão.

Christos Karatsalos
fonte