Primeiro, geramos alguns centroides e uns pontos aos seus redores:
In [15]:
set.seed(42)
somex <- rnorm(4) # Abscissas dos centroides
somey <- rnorm(4)
X <- numeric(104) # 4 para os centroides e 100 para as amostras
Y <- numeric(104) # 4 para os centroides e 100 para as amostras
j <- 1
for (i in 1:4) { # Para cada centroide, vamos gerar alguns pontos
X[j] <- somex[i]
Y[j] <- somey[i]
j = j + 1
for (z in 1:25) {
xz <- 0.12 * rnorm(1) + somex[i]
yz <- 0.12 * rnorm(1) + somey[i]
X[j] <- xz
Y[j] <- yz
j = j + 1
}
}
Agora, vamos plotar esses pontos gerados:
In [23]:
plot(X,Y)
points(somex,somey, pch = 8, col = 2, cex = 9)
No gráfico, você vê os centroides marcados como o centro dos cruzamentos de linhas, e os outros pontos em volta.
In [34]:
df <- data.frame(x = X, y = Y)
modelo <- kmeans(df,4)
In [29]:
modelo
In [31]:
modelo$cluster
In [32]:
modelo$centers
Agora, vamos plotar os grupos que o KMeans encontrou, com seus centros
In [36]:
plot(X,Y,col = modelo$cluster, pch = modelo$cluster)
points(somex,somey, pch = 8, col = 2, cex = 9)
In [ ]: