使用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')

结果可视化

K-means Clustering of Customers

通过可视化结果,我们可以观察到客户群体在收入和年龄维度上的聚类情况。


原文地址: https://www.cveoy.top/t/topic/owoa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录