К кластеризация в R не возвращает ожидаемые значения - PullRequest
0 голосов
/ 20 июня 2019

Мой скрипт кластеризации не возвращает желаемых результатов, и я пытаюсь выяснить, почему это так, или если есть другая кодовая команда, которую я должен использовать.Я пытаюсь сделать ak означает, что кластерный анализ завершен с разными цветами на кластер, используя координаты x и y ядер клеток.К сожалению, мой код возвращает график с цветами повсюду, вместо красивого довольно компактного графика с кластерами одного цвета в одной области.изменилось.

df = read.csv("C:/Users/chelsie/Desktop/Results.csv")
df = df[,-1]
###################### Elbow Method
library(factoextra)
library(NbClust)

fviz_nbclust(df, kmeans, method = "wss") +
  geom_vline(xintercept = 4, linetype = 2)+
  labs(subtitle = "Elbow method")

###################### Clustering Script
set.seed(20)
k = 5
clusters <- kmeans(df[,1], k)

# Save the cluster number in the dataset as column 'Borough'
df$clusterId <- as.factor(clusters$cluster)

#plotcluster(df[,1], df$clusterId)
library(ggplot2)
library(ggthemes)
library(ggplot2)
library(ggthemes)
ggplot(df, aes(x = X, y = Y,color = clusterId)) + 
  geom_point()+ theme_economist() + 
  scale_color_economist()

Я ожидал, что результат будет аналогичен цветным графикам, таким как на этом веб-сайте.Тем не менее, моя картина кластера выходит крайне неправильно, и я не уверен, почему.Введенные мной данные представляют собой x и y и выглядят как this

1 Ответ

0 голосов
/ 25 июня 2019

Не просматривая данные, вам, вероятно, нужно изменить эту строку:

clusters <- kmeans(df[,1], k)

к этому

clustobj <- kmeans(df[,-1], k)
clustassigmt = clustobj$cluster  

"взять столбцы из кадра данных df и использовать все столбцы , за исключением первого" (который может содержать неинформативное значение, возможно, значение идентификатора).

clustassigmt теперь является вектором кластерных назначений, по одному для каждой строки.

...