R语言中聚类肯定最佳K值之Calinsky criterion

Calinski-Harabasz准则有时称为方差比准则 (VRC),它能够用来肯定聚类的最佳K值。Calinski Harabasz 指数定义为:函数

其中,K是聚类数,N是样本数,SSB是组与组之间的平方和偏差,SSw是组内平方和偏差。所以,若是SSw越小、SSB越大,那么聚类效果就会越好,即Calinsky criterion值越大,聚类效果越好。spa

1.下载permute、lattice、vegan包3d

install.packages(c("permute","lattice","vegan"))

2.引入permute、lattice、vegan包code

library(permute) library(lattice) library(vegan)

3.读取数据orm

data <- read.csv("data/data.csv")

4.计算最佳K值blog

fit <- cascadeKM(data,3,10,iter=10,criterion="calinski") calinski.best <- as.numeric(which.max(fit$results[2,]))

5.图片保存图片

png(file="data/calinskibest.png") plot(fit, sortg = TRUE, grpmts.plot = TRUE) dev.off()

6.截图get

 

 

封装DetermineClustersNumHelper.R类it

# ============================ # 肯定最佳聚类K值 # # ============================ # 引入包库 library(permute) library(lattice) library(vegan) # 获取最佳K值函数 get_best_calinski <- function(file_name){ # 获取故障数据 data <- read.csv(paste("data/km/",file_name,".csv",sep=""),header = T) # 计算 fit <- cascadeKM(data,3,10,iter=10,criterion="calinski") calinski.best <- as.numeric(which.max(fit$results[2,])) # 保存图片 png(file=paste("data/km/",file_name,calinski.best,".png",sep="")) plot(fit, sortg = TRUE, grpmts.plot = TRUE) dev.off() } # ========================================================================== # For example #file_list <- array(c("failure_data_normalization","failure_normal_data_normalization")) #for(file in file_list){# # 调用函数 # get_best_calinski(file) #} # ==========================================================================
相关文章
相关标签/搜索