kmeans聚类_R语言数据分析|kMeans聚类法

一、概念

基于划分的聚类方法:给定m个对象的数据集D以及要生成的簇数k,划分算法把数据对象分成k个簇,C1,C2,...,Ck,使得Ci∩Cj=空集

目标函数用来评估划分的质量,使得簇内对象相互相似,而其他簇中对象相异

二、目标函数—误差平方和

e762eb153b2af78821524502b206c60f.png

使得生成的结果簇尽量紧凑和独立

三、k-Means算法

输入:k—簇的数目;D—包含m个对象的数据集

输出:k个簇的集合

  1. 从D中随机选择k个对象作为初始簇中心

  2. Repeat

  3. 根据离簇中心的远近,将每个对象分配到相应的簇

  4. 更新簇均值,即重新计算每个簇中对象的均值作为簇中心

  5. Until 不再发生变化

kmeans聚类_R语言数据分析|kMeans聚类法_第1张图片

原理解释

四、算法实现

scores%  select(yw:sw)  imodelimodel$totss    #与整体中心的平均距离imodel$withinss #与不同类中心的距离# 绘制聚类效果图library(factoextra)fviz_cluster(imodel,              data=scores,              ellipse.type="convox")+  theme_minimal()  # 模型评估与k值选择library(fpc)kmeans_resultskmeans_results$bestk  #可得到最好的k(分类数)kmeans_results$crit  #可显示出不同k取值的轮廓系数#与实际类标签相比较min(Metrics::ce(cjb$wlfk,                c("理科", "文科")[imodel$cluster]),    1-Metrics::ce(cjb$wlfk,                c("理科", "文科")[imodel$cluster]))          

kmeans聚类_R语言数据分析|kMeans聚类法_第2张图片

kmeans聚类_R语言数据分析|kMeans聚类法_第3张图片

你可能感兴趣的:(kmeans聚类)