R语言做K均值聚类的示例分析

  

R语言做K均值聚类的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<节> <节>

K均值聚类是一种比较常用的聚类方法,R语言里做K均值聚类比较常用的函数是<代码> kmeans()> K> nstart https://www.datanovia.com/en/lessons/k-means-clustering-in-r-algorith-and-practical-examples/

这篇链接里提到 R语言做K均值聚类的示例分析

默认的nstart是1,推荐使用较大的值,以获得一个稳定的结果。比如可以使用25或50者。

那如果想使用K均值聚类的话,就可以分成两种情况,

    <李> <节>第一种是知道我自己想聚成几类,比如鸢尾花的数据集,明确想聚为3类。这时候直接指定K下面用鸢尾花数据集做K均值聚类
 <代码> df<虹膜[1:4]
iris.kmeans<-kmeans (df,中心=3,nstart =, 25)
名称(iris.kmeans)
  ,

<代码> iris.kmeans> iris.kmeans集群美元存储的是每个样本被归为哪一类<代码> iris.kmeans美元大?

使用散点图展示结果,借助<代码> factoextra> fviz_cluster() 函数

 <代码>图书馆(factoextra) 
fviz_cluster(对象=iris.kmeans, data=https://www.yisu.com/zixun/iris [1:4],
,,,,,,,,,,,,, ellipse.type =,“euclid", star.plot=T,击退=T
,,,,,,,,,,,,, geom =, (“point"),面板=& # 39;jco& # 39;,主要=?”,
,,,,,,,,,,,,, ggtheme=theme_minimal ()) +
,,主题(=axis.title  element_blank ())
  ,

作图代码参考https://degreesofbelief.roryquinn.com/clustering-analysis-in-r-part-2  R语言做K均值聚类的示例分析

    <李> <节>第二种情况是我不知道想要聚成几类,这个时候就可以将K值设置为一定的范围,然后根据聚类结果里的一些参数来筛选最优的结果比如这篇文章https://www.guru99.com/r-k-means-clustering.html他提到可以使用   ,,集群tot.withinss美元,<代码> 这个参数,选择出现平滑变化的那个点,他起的名字是   ,,,<强>肘法强,英文解释是

这个方法使用类内同质性或类内非均质性评价的变化。换句话说,你感兴趣的方差解释为每个集群的百分比。你可以预期的变化与集群的数量增加,另外,异质性下降。我们面临的挑战是找到k这超出了收益递减。添加一个新的集群不会改善数据的可变性,因为只有很少的信息是留下来解释。

这个英文解释我也没有看明白。实际操作的代码是

下面用<代码> USArrests 这个数据集是美国50个州1973年每10万人中因某种罪被捕的人数,共4个变量

 <代码> df<-USArrests 
kmean_withinss  & lt;作用;函数(k), {
,, cluster  & lt;作用;kmeans (df, k, nstart =, 25)
,, return (集群tot.withinss美元)
}
wss<-sapply(20分,kmean_withinss)
wss
elbow<-data.frame (a=20分,B=wss)图书馆(ggplot2)

ggplot(肘、aes (x=a, y=B)) +
,, geom_point () +
,, geom_line () +
,, scale_x_continuous (breaks =, seq(1, 20日,by =, 1)) + theme_bw ()
  图数据工具,<=" mdnice编辑器”>  R语言做K均值聚类的示例分析“> <figcaption> image.png </figcaption> </图> <p>从上图看,7到8好像是变得比较平滑的,那我们先选7看看</p> <pre> <代码> usa.kmeans<-kmeans (df,中心=7,nstart =, 25) <br/> fviz_cluster(对象=usa.kmeans、df <br/>,,,,,,,,,,,,, ellipse.type =,“euclid,,,,,,,,,,,,, geom =, c (“point",“text"),面板=& # 39;jco& # 39;,主要=?”,
,,,,,,,,,,,,, ggtheme=theme_minimal ()) +
,,主题(=axis.title  element_blank ())
  图数据工具,<=" mdnice编辑器”>  R语言做K均值聚类的示例分析“> <figcaption> image.png </figcaption> </图> <h2 class=R语言做K均值聚类的示例分析