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.

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)


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.