R中K-MeansClaraC-Means三种聚类的评估

Posted xiaomingzaixian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R中K-MeansClaraC-Means三种聚类的评估相关的知识,希望对你有一定的参考价值。

R中cluster中包含多种聚类算法,下面通过某个数据集,进行三种聚类算法的评估 

# ============================
#     评估聚类               #
# ============================

# 引入fpc包(cluster.stats)
library(fpc)
# 引入包库(clara、fanny)
library(cluster)


#=====调用聚类算法=======================================================

# 确定簇心个数
cluster_num <- 3

# 读取数据
data <- read.csv("data.csv",header = T)

# 调用kmeans算法
km <- kmeans(data,cluster_num)

# 调用(clara)算法
cl <- clara(data,cluster_num)

# 调用模糊C-Means聚类算法
fan <- fanny(data,cluster_num) 

#=====调用聚类算法=======================================================


# 聚类评价统计量
km_stats <- cluster.stats(dist(data), km$cluster)
cl_stats <- cluster.stats(dist(data), cl$cluster)
fcm_stats <- cluster.stats(dist(data), fan$clustering)

# 信息数据框表化
info <- data.frame(
  Algorithm = c("KMeans", "Clara", "FCM"), 
  Silwidth = c(km_stats$avg.silwidth,cl_stats$avg.silwidth,fcm_stats$avg.silwidth),
  AverageWithin = c(km_stats$average.within, cl_stats$average.within, fcm_stats$average.within),
  averageBetween = c(km_stats$average.between, cl_stats$average.between, fcm_stats$average.between),
  ch = c(km_stats$ch, cl_stats$ch, fcm_stats$ch)
)

# 重命名字段
names(info)[2:5] <- c("轮廓系数","簇内平均距离","簇间平均聚类","Calinski和Harabasz指数")

技术分享图片

 

以上是关于R中K-MeansClaraC-Means三种聚类的评估的主要内容,如果未能解决你的问题,请参考以下文章

R语言确定聚类的最佳簇数:3种聚类优化方法

基于R语言的分类、聚类研究

聚类分析方法都有哪些

轨迹聚类:哪种聚类方法?

四种聚类方法之比较

哪种聚类算法最适合聚类一维特征?