载入数据、显示数据的维度 CustomerlD 、 Gender 这两个变量按照字符型变量读入,其他三个变量按照数值型变量读入对变量 Age 、 Annuallncome 和 SpendingScore 进行标准化,使它们均值为0,标准偏差为1,显示标准化后三个变量的前5行数据实验内容对数据进行可视化,判断大致的聚类类别选择合适的属性,使用 kmeans 聚类方法对数据进行聚类,显示各类别的中心点、类间平方和、类内平方和、各类别样本数对 kmeans 聚类结果进行可视化,保存到 PDF 文件中实验内容选择合适的属性,使用层次聚类方法对数据进行聚类,画出层次聚类图,并显示各类别的样本数将层次聚类的结果用散点图表示出来,保存到 PDF 文件中对 kmeans 聚类分析和层次聚类分析的结果进行比较分析
时间: 2024-03-12 21:50:07 浏览: 134
以下是R语言代码实现:
```R
# 载入数据
data <- read.csv("data.csv", header = TRUE, stringsAsFactors = FALSE)
# 显示数据的维度
dim(data)
# 将 CustomerlD 和 Gender 两个变量按照字符型变量读入,其他三个变量按照数值型变量读入
data$CustomerID <- as.character(data$CustomerID)
data$Gender <- as.character(data$Gender)
data$Age <- as.numeric(data$Age)
data$AnnualIncome <- as.numeric(data$AnnualIncome)
data$SpendingScore <- as.numeric(data$SpendingScore)
# 对变量 Age、AnnualIncome 和 SpendingScore 进行标准化
data[, 4:6] <- scale(data[, 4:6])
# 显示标准化后三个变量的前5行数据
head(data[, 4:6], 5)
# 实验内容对数据进行可视化,判断大致的聚类类别
library(ggplot2)
ggplot(data, aes(x = AnnualIncome, y = SpendingScore)) + geom_point()
# 选择合适的属性,使用 kmeans 聚类方法对数据进行聚类
set.seed(123) # 设置随机种子,保证结果可重复
k <- 5 # 设置聚类数
km <- kmeans(data[, 4:6], centers = k) # kmeans聚类
# 显示各类别的中心点、类间平方和、类内平方和、各类别样本数
km$centers # 中心点
km$betweenss # 类间平方和
km$tot.withinss # 类内平方和
table(km$cluster) # 各类别样本数
# 对 kmeans 聚类结果进行可视化,保存到 PDF 文件中
pdf("kmeans_result.pdf")
ggplot(data, aes(x = AnnualIncome, y = SpendingScore, color = factor(km$cluster))) + geom_point() + ggtitle("Kmeans Clustering Result")
dev.off()
# 选择合适的属性,使用层次聚类方法对数据进行聚类
dist_mat <- dist(data[, 4:6]) # 计算距离矩阵
hc <- hclust(dist_mat, method = "ward.D2") # 使用ward.D2方法进行层次聚类
# 画出层次聚类图,并显示各类别的样本数
plot(hc, cex = 0.6, hang = -1, main = "Hierarchical Clustering Dendrogram")
rect.hclust(hc, k = 5, border = 2:6) # 根据聚类数k=5画出分割线
table(cutree(hc, k = 5)) # 各类别样本数
# 将层次聚类的结果用散点图表示出来,保存到 PDF 文件中
pdf("hierarchical_result.pdf")
plot(data[, 5:6], col = cutree(hc, k = 5), pch = 19, xlab = "AnnualIncome", ylab = "SpendingScore")
title("Hierarchical Clustering Result")
dev.off()
# 对 kmeans 聚类分析和层次聚类分析的结果进行比较分析
# 可以通过聚类结果中的中心点、样本分布等指标进行比较分析,如此处的类间平方和、类内平方和、样本分布等。同时,需要结合实际情况进行分析和解释。
阅读全文