R语言KMeans聚类模型示例

K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

k个初始类聚类中心点的选取对聚类结果具有较大的影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。如果在一次迭代前后,J的值没有发生变化,说明算法已经收敛。

# Listing 16.4 - K-means clustering of wine data
data(wine, package="rattle")
head(wine)
df <- scale(wine[-1])  # 标准化数据

wssplot(df)      
library(NbClust)
set.seed(1234)
nc <- NbClust(df, min.nc=2, max.nc=15, method="kmeans")
par(opar)
table(nc$Best.n[1,]) # 决定聚类个数

barplot(table(nc$Best.n[1,]), 
        xlab="Numer of Clusters", ylab="Number of Criteria",
        main="Number of Clusters Chosen by 26 Criteria") 
set.seed(1234

R语言KMeans聚类模型示例相关推荐

  1. R语言层次聚类模型示例

    R语言层次聚类模型示例 层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树.在聚类树中,不同类别的原始数据点是树的 ...

  2. R语言Kmeans聚类、抽取聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(ASW)为Kmeans选择最优的聚类K值、并与层次聚类的最优K值进行比较

    R语言Kmeans聚类.抽取Kmeans聚类找到的聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(Average average silhouett ...

  3. R语言Kmeans聚类、抽取聚类簇:fpc包clusterboot函数通过bootstrap重采样的方法评估Kmeans聚类的稳定性、fpc包的kmeansruns函数通过CH准则和ASW获取最优K值

    R语言Kmeans聚类.抽取聚类簇:fpc包的clusterboot函数通过bootstrap重采样的方法评估Kmeans聚类的稳定性.fpc包的kmeansruns函数通过Calinski-Hara ...

  4. R构建Kmeans聚类模型

    R构建Kmeans聚类模型 目录 R构建Kmeans聚类模型 加载和准备数据 最优聚类簇数 用最优K进行K-Means聚类

  5. r语言kmeans聚类(真实案例完整流程)

    K-means介绍 k-means算法简介: K-means算法是IEEE 2006年ICDM评选出的数据挖掘的十大算法中排名第二的算法,排名仅次于C4.5算法.K-means算法的思想很简单,简单来 ...

  6. R语言kmeans聚类提示:Warning message:10迭代仍没有聚合

    [R] kmeans: "did not converge in 10 iterations" 表示迭代次数不够,得到的划分不稳定,算法没有收敛到最优解(默认迭代10次).这时增大 ...

  7. r语言 col_R语言绘制聚类树示例

    R语言绘制聚类树示例层次聚类(hierarchical clustering)常见两种形式,"自底向上"的聚合策略(层次聚合)或"自顶向下"的分拆策略(层次分划 ...

  8. R语言KMeans聚类分析确定最优聚类簇数实战:间隙统计Gap Statistic(确定最优聚类簇数)

    R语言KMeans聚类分析确定最优聚类簇数实战:间隙统计Gap Statistic(确定最优聚类簇数) 目录

  9. R语言KMeans聚类分析确定最优聚类簇数实战:NbClust包(确定最优聚类簇数)

    R语言KMeans聚类分析确定最优聚类簇数实战:NbClust包(确定最优聚类簇数) 目录

最新文章

  1. 共享打印机,解决驱动检测失败无法连接共享打印机问题
  2. PHP面向对象(OOP):抽象方法和抽象类(abstract)
  3. Eclipse插件开发总结(第二天)
  4. html获取xml分页,JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
  5. OpenStack基础知识-virtualenv工具详解
  6. Qt在指定区域内拖动窗口
  7. 什么是Vue.nextTick()
  8. Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式
  9. Clion添加Posix消息队列的-lrt连接
  10. 这一次,彻底弄懂 Java 字节码文件!
  11. 【线性代数及其应用】02 -矩阵代数
  12. 更改 matlab java 版本_64位 JDK 1.8 调用Matlab 2017b打包的jar
  13. 运筹优化(五)--线性规划之内点法
  14. 阿里云服务器怎么预防CC攻击?
  15. 快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
  16. Asciinema - 终端日志记录神器,机器学习开发者的福音
  17. Acwing:COW(DP+状态机 Python)
  18. 一个SAPer的网络日志-连载一-看,内部订单都能用来干啥
  19. Android手机通讯录
  20. html5 canvas烂漫的空中散落的花瓣动画特效

热门文章

  1. 死锁产生条件-环路等待条件
  2. Python的语言特点
  3. win下我的windows键失效了
  4. python apktool_Python使用ApkTool和子进程反编译APK
  5. python释放类对象_Python 基本功: 10. 面对对象-类 Class
  6. 工业软件研究框架_聚焦十四五!先进制造急先锋——工业软件
  7. ubuntu16.04下ROS最新换源方法,解决Hash sum mismatch 问题
  8. mvvm绑定checkbox wpf_C#框架结构分层:三层结构,DDD,MVC,MVVM,MVP
  9. ubuntu|利用system来新建文件夹
  10. 直播回顾|结构光编码与三维重建技术