R语言之聚类
来源:互联网 发布:大话设计模式 java版 编辑:程序博客网 时间:2024/05/17 07:20
library(fpc)
data <- iris[,1:4]
# 定义存放轮廓系数的向量
re<-c()
for(i in2:5) {
result<- kmeans(data,i)
stats<- cluster.stats(dist(data),result$cluster)
re[i]<- stats$avg.silwidth
};
re
final <- which.max(re) # 划分成2个聚类
print(re[final]) # 轮廓系数
结果解读:
从结果来看,貌似应该分成2类更加合适(第二个数最大) 实际数据分为3类
# 再练一次
re<-c()
for(iin4:6){
result<-kmeans(data,i)
stats<-cluster.stats(dist(data),result$cluster)
re[i]<-stats$avg.silwidth
}
re
结果解析:
如果聚类指定从4类开始,返回的结果为:
# [1] NA NA NA 0.4965169 0.3711254 0.3599431
从结果看出,前三个NA分别表示了前三个聚类(因为没有参与计算,结果为NA)
fpc包中 关键的函数
cluster.stats(d =NULL, clustering, alt.clustering =NULL,
noisecluster=FALSE,
silhouette =TRUE, G2 =FALSE, G3 =FALSE,
wgap=TRUE, sepindex=TRUE, sepprob=0.1,
sepwithnoise=TRUE,
compareonly =FALSE,
aggregateonly =FALSE)
clustering:使用kmeans拟合后的对象(如result)的cluster(聚类结果),数值型向量(如1 1 1 2 2 3 4 4)
# 基于层次聚类的方法
hc <- hclust(dist(data), method="cen") # 类中心的距离还可以有很多方法 如 ave,median,complete等
# 绘制聚类结果 (看起来三个效果好一些)
plot(hc);
plot(hc, hang=-1) # hang:负数会在纵坐标0以下,正值则在以上,默认为0.1
# 然后只取三个聚类 "剪枝"
memb <- cutree(hc, k =3)
memb;
- R语言之聚类
- R语言之聚类
- R语言聚类
- R语言之对象和类
- R语言之绘图
- R语言之逐步回归
- R语言之因子分析
- R语言之统计学
- R语言之简述
- R语言之饼状图
- #R#R语言决策树和聚类的实例
- R语言之系统聚类(层次)分析之图谱形式完整版
- R语言之常用函数
- R语言之参数估计篇
- R语言之假设检验篇
- R语言之方差分析篇
- R语言学习之apply
- R语言之统计分析篇
- /bin/bash^M: bad interpreter: 没有那个文件或目录
- POCO 整体框架介绍
- 爱管闲事的小明
- android 媒体库数据更新解决办法总结
- 高通 8x26 andorid light sensor(TSL258x) 开发
- R语言之聚类
- Nhibernate 问题 解决 锦集
- 【网络系统集成】读书笔记 1
- 旅途
- Git详解之四 服务器上的Git
- mediaElement 示例
- Mobility Management in Connected State
- 网曝江西潘阳公安局副局长外甥女婿杀人被放走
- kNN方法R实现