R语言对商场200位客户使用kmeans聚类法和系统聚类法进行聚类,对聚类结果进行可视化,并保存可视化结果,对两种聚类分析方法的聚类结果进行分析代码
时间: 2023-07-09 17:37:33 浏览: 128
R语言的聚类分析
首先,我们需要导入数据集。我们假设数据集的文件名为“customers.csv”,包含200个客户和它们的购买行为数据,其中每个客户有以下特征:年龄、性别、所在城市、购买频率、购买金额等。
```R
# 导入数据
data <- read.csv("customers.csv")
head(data)
```
然后,我们可以使用kmeans函数对数据进行聚类分析。
```R
# kmeans聚类分析
set.seed(123) # 设置随机数种子
k <- 3 # 设置簇的数量
km <- kmeans(data[, 4:6], k) # 只选取购买频率、购买金额和购买数量作为特征进行聚类
cluster <- km$cluster # 获取聚类结果
```
接下来,我们可以使用hclust函数对数据进行系统聚类分析。
```R
# 系统聚类分析
d <- dist(data[, 4:6]) # 计算数据点之间的欧几里得距离
hc <- hclust(d, method = "ward.D2") # 使用Ward方法进行系统聚类
plot(hc) # 可视化系统聚类结果
cluster <- cutree(hc, k = 3) # 获取聚类结果
```
最后,我们可以使用ggplot2包对聚类结果进行可视化,并将可视化结果保存为图片。
```R
# 可视化聚类结果
library(ggplot2)
data$cluster <- as.factor(cluster) # 将聚类结果转换为因子变量
ggplot(data, aes(x = PurchaseFreq, y = PurchaseAmount, color = cluster)) +
geom_point() +
ggtitle("Cluster Analysis using kmeans and Hierarchical Clustering") +
xlab("Purchase Frequency") +
ylab("Purchase Amount") +
theme(plot.title = element_text(hjust = 0.5)) # 居中显示标题
# 保存可视化结果为图片
ggsave("cluster_analysis.png", width = 8, height = 6, dpi = 300)
```
对于两种聚类分析方法的聚类结果进行分析,我们可以比较它们的聚类中心、聚类规模和聚类效果等指标。在这里,我们可以使用silhouette函数来评估聚类效果。
```R
# 比较两种聚类分析方法的聚类效果
library(cluster)
# kmeans聚类效果
km_sil <- silhouette(km$cluster, dist(data[, 4:6]))
km_sil_summary <- summary(km_sil)
km_sil_summary$avg.width
# 系统聚类效果
hc_sil <- silhouette(cluster, dist(data[, 4:6]))
hc_sil_summary <- summary(hc_sil)
hc_sil_summary$avg.width
```
以上代码可以分别计算kmeans聚类和系统聚类的平均轮廓系数,来评估它们的聚类效果。平均轮廓系数越接近1,说明聚类效果越好。
阅读全文