求以下实验的R语言代码:对商场200位客户使用kmeans聚类法和系统聚类法进行聚类,对聚类结果进行 可视化,并保存可视化结果,对两种聚类分析方法的聚类结果进行分析 数据集:mall.csv 数据属性描述: 字段名: Customerip Gender Age Annual Income (k$) Spending Score (1-100) 字段描述 顾容ID 性别 实验内容:1.载入数据、显示数据的维度,CustomerlD、Gender这两个变量按照字符型变量读入.其他三个变量按照数值型变量读入。2.对变量Age、Annualincome和SpendingScore进行标准化,使它们均值为0,标准偏差为1,显示标准化后三个变量的前5行数据。3.对数据进行可视化,判断大致的聚类类别。4.选择合适的属性,使用kmeans聚类方法对数据进行聚类,显示各类别的中心点、类间平方和、类内平方和、各类别样本数。5.对kmeans聚类结果进行可视化,保存到PDF文件中。6.选择合适的属性,使用层次聚类方法对数据进行聚类,画出层次聚类图,并显示各类别的样本数。7.将层次聚类的结果用散点图表示出来,保存到PDF文件中。8.对kmeans聚类分析和层次聚类分析的结果进行比较分析。 年龄 年收入 消费得分
时间: 2024-03-12 17:50:23 浏览: 68
以下是对商场200位客户使用kmeans聚类法和系统聚类法进行聚类的R语言代码:
```R
# 1. 载入数据
mall_data <- read.csv("mall.csv", header = TRUE, stringsAsFactors = FALSE)
# 显示数据的维度
dim(mall_data)
# CustomerlD、Gender这两个变量按照字符型变量读入,其他三个变量按照数值型变量读入
str(mall_data)
# 2. 对变量Age、Annualincome和SpendingScore进行标准化
mall_data_norm <- scale(mall_data[3:5])
# 显示标准化后三个变量的前5行数据
head(mall_data_norm, 5)
# 3. 对数据进行可视化
library(ggplot2)
ggplot(mall_data, aes(x = Annual.Income..k.., y = Spending.Score..1.100.)) + geom_point()
# 4. 使用kmeans聚类方法对数据进行聚类
set.seed(123)
km_clusters <- kmeans(mall_data_norm, centers = 5, nstart = 20)
# 显示各类别的中心点、类间平方和、类内平方和、各类别样本数
km_clusters
# 5. 对kmeans聚类结果进行可视化,并保存到PDF文件中
pdf("kmeans_clusters.pdf")
ggplot(mall_data, aes(x = Annual.Income..k.., y = Spending.Score..1.100., color = factor(km_clusters$cluster))) + geom_point() + geom_point(data = as.data.frame(km_clusters$centers), aes(x = Annual.Income..k.., y = Spending.Score..1.100.), color = "black", size = 3) + ggtitle("K-Means Clustering of Mall Customers") + theme(plot.title = element_text(hjust = 0.5))
dev.off()
# 6. 使用层次聚类方法对数据进行聚类
hc_clusters <- hclust(dist(mall_data_norm), method = "ward.D2")
# 画出层次聚类图
plot(hc_clusters, cex = 0.6, hang = -1, main = "Hierarchical Clustering of Mall Customers")
# 显示各类别的样本数
table(cutree(hc_clusters, k = 5))
# 7. 将层次聚类的结果用散点图表示出来,并保存到PDF文件中
pdf("hierarchical_clusters.pdf")
ggplot(mall_data, aes(x = Annual.Income..k.., y = Spending.Score..1.100., color = factor(cutree(hc_clusters, k = 5)))) + geom_point() + ggtitle("Hierarchical Clustering of Mall Customers") + theme(plot.title = element_text(hjust = 0.5))
dev.off()
# 8. 对kmeans聚类分析和层次聚类分析的结果进行比较分析
# 可以比较各个聚类的中心点、类内平方和、类间平方和、各类别样本数等指标,以确定哪种聚类方法更优
```
上述代码中,我们首先使用 `read.csv` 函数载入数据,然后使用 `scale` 函数对 Age、Annualincome 和 SpendingScore 进行标准化。接着,我们对数据进行可视化,使用 kmeans 聚类方法和层次聚类方法进行聚类,并对聚类结果进行可视化并保存到 PDF 文件中。最后,我们对两种聚类分析方法的聚类结果进行比较分析。
阅读全文