27. 聚类分析 - 使用R进行客户分群

实例背景:

聚类分析是一种无监督学习方法,用于根据数据的相似性将对象分组。在市场营销中,聚类分析常用于将客户分群,从而为不同的客户群体提供个性化的服务或营销策略。在R语言中,kmeans算法是最常用的聚类方法之一。我们将在本示例中使用kmeans算法对客户数据进行聚类分析。

目标:
  • 使用R进行K-means聚类
  • 基于客户的特征(如收入、年龄)将其分为不同的群体
步骤 1: 安装并加载必要的包

在R中,ggplot2cluster包常用于数据可视化和聚类分析。我们先安装并加载这些包。
登录后复制

plain 复制代码
# 安装并加载必要的包
if (!requireNamespace("ggplot2", quietly = TRUE)) {
  install.packages("ggplot2")
}

if (!requireNamespace("cluster", quietly = TRUE)) {
  install.packages("cluster")
}

library(ggplot2)
library(cluster)
步骤 2: 创建客户数据

为了演示聚类分析,我们将创建一个包含客户的年龄和收入的虚拟数据集。
登录后复制

plain 复制代码
# 创建虚拟的客户数据集
set.seed(123)
customer_data <- data.frame(
  age = c(25, 30, 35, 40, 45, 50, 55, 60, 65, 70),
  income = c(30000, 35000, 40000, 45000, 50000, 55000, 60000, 65000, 70000, 75000)
)

# 查看数据
print(customer_data)
步骤 3: 执行K-means聚类

我们使用kmeans函数来对客户数据进行聚类。假设我们想将客户分成3个群体。
登录后复制

plain 复制代码
# 执行K-means聚类
kmeans_result <- kmeans(customer_data, centers = 3)

# 查看聚类结果
kmeans_result$cluster
步骤 4: 可视化聚类结果

使用ggplot2包,我们可以将聚类结果进行可视化,以查看不同群体的分布。
登录后复制

plain 复制代码
# 将聚类结果添加到原始数据中
customer_data$cluster <- factor(kmeans_result$cluster)

# 可视化聚类结果
ggplot(customer_data, aes(x = age, y = income, color = cluster)) +
  geom_point(size = 4) +
  labs(title = "K-means聚类:客户分群", x = "年龄", y = "收入")
步骤 5: 分析聚类中心

通过查看聚类中心,我们可以了解每个群体的特征。例如,群体1的年龄和收入的平均值,群体2的年龄和收入的平均值,依此类推。
登录后复制

plain 复制代码
# 查看每个聚类的中心
kmeans_result$centers
总结

在本示例中,我们使用了K-means算法对客户数据进行聚类分析,将客户分为3个群体。聚类分析可以帮助企业根据客户特征(如年龄和收入)进行市场细分,从而实施更精准的营销策略。

相关推荐
DS数模8 分钟前
2026年Mathorcup数学建模竞赛A题思路解析+代码+论文
开发语言·数学建模·matlab·mathorcup·妈妈杯·2026妈妈杯
叶子野格13 分钟前
《C语言学习:编程例题》8
c语言·开发语言·c++·学习·算法·visual studio
Java面试题总结13 分钟前
Python 入门(四)- Openpyxl 操作 Excel 教程
开发语言·python·excel
gCode Teacher 格码致知19 分钟前
Javascript提高:Math.round 详解-由Deepseek产生
开发语言·javascript
广州灵眸科技有限公司26 分钟前
瑞芯微(EASY EAI)RV1126B QT GUI例程方案
linux·服务器·开发语言·网络·人工智能·qt·物联网
枫叶丹430 分钟前
【HarmonyOS 6.0】ArkWeb 私有网络访问控制接口详解
开发语言·网络·华为·harmonyos
小杍随笔30 分钟前
【Rust 1.95.0 正式发布!语言特性、标准库、平台支持全面升级,一文带你看完整更新】
开发语言·rust·策略模式
生信小窝34 分钟前
079B-Zonae Cogito决策支持系统与R语言可视化结合的Marxan保护区规划课程【2027】
人工智能·python·r语言
浪客川35 分钟前
【百例RUST - 008】枚举
开发语言·后端·rust
李日灐38 分钟前
<3>Linux 基础指令:从时间、查找、文本过滤到 .zip/.tgz 压缩解压与常用热键
linux·运维·服务器·开发语言·后端·面试·指令