登录
首页精彩阅读基于R做聚类分析
基于R做聚类分析
2018-06-09
收藏

基于R做聚类分析

一 数据集

setwd("C://Users//admin//Desktop//DATA") #设置路径
Iris=read.table("Iris.txt")
names(Iris)=c("v1","v2","v3","v4","label") #设置变量名
var=Iris$label #将标签赋予var

var=as.character(var)  #将var转换为字符型 

二 K-Medoids聚类
K-中心点算法与K-均值算法在原理上十分接近,主要区别在于在选取每个类别的中心点时,K-中心点算法在类别内选取到其余样本距离之和最小的样本为中心。
K-中心点算法在R中的软件包为Cluster主要函数为pam ().

install.packages("cluster")
library(cluster)

kc=pam(Iris[,-5],3) #去掉标签 print(kc)
kc=pam(Iris[,-1],3,cluster.only=TRUE) #显示聚类结果 print(kc)


Medoids:该项指明聚类完成时聚类完成的各类别的中心点分别是哪几个样本点,它们的变量取值为多少。
Objective function:该项给出了build和swap两个过程中目标方程的值。其中,build过程用于在未指定初始中心点情况下,对于最优初始中心点的寻找;而swap过程则用于在初始中心点的基础上,对目标方程寻找其能达到局部最优类别划分状态。

三 EM聚类

library(mclust)
fit_em=Mclust(Iris[,-5])
summary(fit_em)
fit_em=mclustBIC(Iris[,-5]) # 第二个聚类函数
BICsum=summary(fit_em,data=Iris[,-5])
	

这里有聚类结果可视化展示,不过对于高维数据,打算再研究一下。

数据分析咨询请扫描二维码

客服在线
立即咨询