R语言K均值聚类:客户数据分析与可视化
使用R语言进行K均值聚类分析客户数据
本案例展示如何使用R语言进行K均值聚类,并对客户数据进行分析和可视化。
1. 数据读取与预处理
首先,我们需要读取客户数据,并将分类变量转换为数值变量。
data <- read.csv('data.csv')
data$Gender <- ifelse(data$Gender == 'M', 0, 1)
data$Habitat <- factor(data$Habitat, levels = c('Small_town', 'City_center', 'Rural'))
data$Habitat <- as.integer(data$Habitat) - 1
data$Married <- ifelse(data$Married == 'No', 0, 1)
data$Car <- ifelse(data$Car == 'No', 0, 1)
data$Savings_Account <- ifelse(data$Savings_Account == 'No', 0, 1)
data$Current_Account <- ifelse(data$Current_Account == 'No', 0, 1)
data$Loan <- ifelse(data$Loan == 'No', 0, 1)
2. K均值聚类
接下来,使用kmeans()函数进行K均值聚类。
library(ggplot2)
library(cluster)
# 选择特征
features <- c('Age', 'Gender', 'Habitat', 'Income', 'Married', 'Children', 'Car', 'Savings_Account', 'Current_Account', 'Loan', 'Family_Quotient')
# 进行聚类
set.seed(123)
k <- kmeans(data[, features], centers = 3, nstart = 25)
# 输出聚类结果
k$cluster
3. 可视化
最后,使用ggplot2包绘制散点图,将聚类结果可视化。
# 添加聚类标签
data$cluster <- as.factor(k$cluster)
# 绘制散点图
ggplot(data, aes(x = Income, y = Age, color = cluster)) +
geom_point() +
scale_color_manual(values = c('#E69F00', '#56B4E9', '#009E73')) +
labs(title = 'K-means Clustering of Customers', x = 'Income', y = 'Age')
结果可视化

通过可视化结果,我们可以观察到客户群体在收入和年龄维度上的聚类情况。
原文地址: https://www.cveoy.top/t/topic/owoa 著作权归作者所有。请勿转载和采集!