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

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

1.下载permute、lattice、vegan包

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

2.引入permute、lattice、vegan包

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

3.读取数据

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

4.计算最佳K值

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

5.图片保存

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

6.截图

封装DetermineClustersNumHelper.R类

# ============================
# 确定最佳聚类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,,,iter=,criterion="calinski")
calinski.best <- as.numeric(which.max(fit$results[,]))
# 保存图片
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)
#} # ==========================================================================

R语言中聚类确定最佳K值之Calinsky criterion的更多相关文章

  1. R语言中的特殊值 NA NULL NaN Inf

    这几个都是R语言中的特殊值,都是R的保留字, NA:Not available  表示缺失值   用 is.na() 来判断是否为缺失值 NULL:表示空值,即没有内容  用 is.null() 来判 ...

  2. R语言中样本平衡的几种方法

    R语言中样本平衡的几种方法 在对不平衡的分类数据集进行建模时,机器学习算法可能并不稳定,其预测结果甚至可能是有偏的,而预测精度此时也变得带有误导性.在不平衡的数据中,任一算法都没法从样本量少的类中获取 ...

  3. R语言学习笔记1——R语言中的基本对象

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...

  4. 【R语言入门】R语言中的变量与基本数据类型

    说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...

  5. 机器学习:R语言中如何使用最小二乘法

    详细内容见上一篇文章:http://www.cnblogs.com/lc1217/p/6514734.html 这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下:(数据同 ...

  6. R语言中的数据处理包dplyr、tidyr笔记

    R语言中的数据处理包dplyr.tidyr笔记   dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了 ...

  7. R语言中的四类统计分布函数

    R语言中提供了四类有关统计分布的函数(密度函数,累计分布函数,分位函数,随机数函数).分别在代表该分布的R函数前加上相应前缀获得(d,p,q,r).如: 1)正态分布的函数是norm,命令dnorm( ...

  8. R语言中的字符处理

    R语言中的字符处理 (2011-07-10 22:29:48) 转载▼ 标签: r语言 字符处理 字符串 连接 分割 分类: R R的字符串处理能力还是很强大的,具体有base包的几个函数和strin ...

  9. R 语言中的数据结构

    基本数据类型 6种 numaric  如 12, 12.4 integer  如 2L,0L complex  包含实数和虚数 如 3+2i character  要用双引号或者单引号包括起来 如 & ...

随机推荐

  1. java synchronized究竟锁住的是什么

    刚学java的时候,仅仅知道synchronized一个线程锁.能够锁住代码,可是它真的能像我想的那样,能够锁住代码吗? 在讨论之前先看一下项目中常见关于synchronized的使用方法: publ ...

  2. PHP截取中文字符串不出现?号的解决方法[原创]

    PHP截取中文字符串不出现?号的解决方法[原创] 大 | 中 | 小 [不指定 -- : | by 张宴 ] [文章作者:张宴 本文版本:v1. 最后修改: 转载请注明出处:http://blog.z ...

  3. ajax请求数据动态渲染表格

    $.ajax({ url: "/flow/userTaskFileShow.cc", data: {"processDefinitionId": pdid, & ...

  4. vuex中store分文件时候index.js进行文件整合

    import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); import getters from './getters.js' impo ...

  5. Ununtu 15.04 安装MySql(Django连接Mysql)

    本文介绍Ubuntu 15.04下安装MySQL ubuntu 15.04安装mysql django项目连接mysql 一.安装数据库 1.sudo apt-get install mysql-se ...

  6. 等边三角形---dfs

    蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个等边三角形,并且每根木棍都要用到. 例如,蒜头君手上有长度为 11,22,33,33 的4根木棍,他可以让长度为11,22 的木棍组成一 ...

  7. dp之多重背包hdu1114

    题目很水,不多说......... #include<stdio.h> int main() { long t,n,m,a,i,j,dp[10005],vol[505],jizhi[505 ...

  8. 关于锚点(anchorPoint)的一些理解

    默认来说,锚点位于图层的中点.对锚点一直不太了解是怎么移动的,有时候搞明白过不久碰到了又是懵逼,这次专门记录下来自己的一些理解,有不对的也请指教一下.就用下张图来简单的说明,每个视图的左上角锚点位置为 ...

  9. 防止js拦截跳转请求的方法

    不要直接使用window.open这个方法. 考虑下使用下面这个: openWindow: function(url){ var link = document.createElement('a'); ...

  10. 百度JS模板引擎

    1. 应用场景 前端使用的模板系统  或  后端Javascript环境发布页面 2. 功能描述 提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同 ...