聚类分析是将数据根据相似特征分类到不同的类或簇,用以对数据进行区分。
1.聚类(K-means)
通过数据中每个数值间的距离进行聚类,是一种纵向聚类,将样本数据据成类型,用以对数据的特征进行区分。
(1)读取数据
data = read.csv(" ")
cludata <- data[complete.cases(data), ] # 去除重复值数据
str(data)
(2)设置运行结果生成图片查看数据分布
boxplot(data)
(3)设定随机数采用K-means聚类:寻找类中心
set.seed(12345)
clur <- kmeans(x = data, centers =“类中心个数”, nstart = 4)
str(clur)
(4)查看运行的csv文件结果并输出为csv文件
head(clur)
clur$size
clur$centers
write.csv(clur$`cluster`, "cluster.csv")
2.横向聚类
通过对数值对变量进行聚类,判断哪些变量属于相同的类型,理解为横向聚类。谱系聚类包含:最长距离聚类、最短距离聚类、单一聚类、最大似然法聚类。最长距离聚类是指按照变量间的远近程度,进行聚类 ,以某点为基准,距离最远的判断是1类。最短距离聚类,是以某个点为基准,谁离得聚类相同聚为1类。单一聚类,将每个数据点视为一个单一的簇,然后选择一个测量两个簇之间距离的度量标准,进行聚类。最大似然法聚类,运用的最大概似估计,以概率来估计一个变量类属。
(1)读取数据
data = read.csv("路径/文件名.csv")
(2)数据处理转换
r = cor(data)
d <- as.dist(1-r)
(3)进行谱系聚类
hc1 <- hclust(d, "single"); hc2 <- hclust(d, "complete")
hc3 <- hclust(d, "median"); hc4 <- hclust(d, "mcquitty")
opar <- par(mfrow = c(2, 2))
plot(hc1, hang = -1); plot(hc2, hang = -1)
plot(hc3, hang = -1); plot(hc4, hang = -1)
par(opar)
dev.off()