K-均值聚类解释

时间:2019-07-16 12:11:09

标签: r ggplot2 cluster-analysis

我有3个群集对图,分别是“平均周一小时”,“饱和水平”,“最后评估”,并通过以下代码找到了矩阵图。

library("ggplot2") # Expanded plotting functionality over "lattice" package
x<-cbind(HR_left$average_montly_hours,HR_left$satisfaction_level,HR_left$last_evaluation)
kmfit<-kmeans(x,3,nstart=25) 
# Find the best 3 clusters using 25 random sets of (distinct) rows in x as initial centres.
pairs(x,col=(kmfit$cluster), labels=c("Av. Mon. Hrs","Sat. Lvl","Last Eval."))

它说

  • 集群1:配对图将此集群描述为工作低 员工的平均每月工作时间,中等满意度范围和 低最后评价。
  • 集群2:从对图中,该集群为 每月工作时间长,满意度低, 评价。
  • 集群3:从对图中,该集群为 每月工作时间长,满意度高, 评估。

但是我不了解关于它们如何解释这三个发现的成对图。

library(readr)
HR_comma_sep <- read_csv("https://stluc.manta.uqcloud.net/mdatascience/public/datasets/HumanResourceAnalytics/HR_comma_sep.csv")
HR_left<-HR_comma_sep[HR_comma_sep$left==1,]

library("ggplot2") # Expanded plotting functionality over "lattice" package 

 x<-cbind(HR_left$average_montly_hours,HR_left$satisfaction_level,HR_left$last_evaluation) 
 kmfit<-kmeans(x,3,nstart=25) 
 # Find the best 3 clusters using 25 random sets of (distinct) rows in x as initial centres. 

 pairs(x,col= (kmfit$cluster),labels=c("Av. Mon. Hrs","Sat. Lvl","Last Eval."))

1 个答案:

答案 0 :(得分:2)

每月小时数与其他两个变量的比例截然不同,这使集群发生了偏差。区别在于工作时间主导着其他两个变量的差异。 您应该通过除以平均值,范围或找到z得分来归一化每一列。

原始代码:

library(readr)
HR_comma_sep <- read_csv("https://stluc.manta.uqcloud.net/mdatascience/public/datasets/HumanResourceAnalytics/HR_comma_sep.csv")
HR_left<-HR_comma_sep[HR_comma_sep$left==1,]

library("ggplot2") 
x_org<-cbind(HR_left$average_montly_hours,
         HR_left$satisfaction_level,
         HR_left$last_evaluation) 

kmfit<-kmeans(x_org, 3, nstart = 25) 
pairs(x_org,col= (kmfit$cluster),labels=c("Av. Mon. Hrs","Sat. Lvl","Last Eval."))

enter image description here

使用缩放值重复计算:

x_scaled<-cbind(scale(HR_left$average_montly_hours),
                scale(HR_left$satisfaction_level),
                scale(HR_left$last_evaluation)) 
kmfit<-kmeans(x_scaled, 3) 
pairs(x_org,col= (kmfit$cluster),labels=c("Av. Mon. Hrs","Sat. Lvl","Last Eval."))

enter image description here

仅使用原始值,聚类主要由每月小时数的差异决定。顶部的图显示2个聚类(黑色和绿色)合并在一起并且没有区别。
缩放值并执行聚类后,发现了3个明显区分的聚类(底部图像)。