郭震 AI公众号:郭震AI

24 客户分群

发布日期:

最近更新:

分类: Scikit

预计阅读: 3 分钟

阅读次数: 0

系列进度

Scikit-learn 入门 · 第 24 / 24

上一篇手写数字识别已到最后一篇
预计阅读3 分钟
结构重点10 个
图文要点6 张
正文规模1.3k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 10 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

客户分群流程图查看大图
客户分群流程图

客户分群不是把 K-Means 跑完就结束。你需要解释每个群体的特征、规模、价值和行动建议,结果才有业务意义。

客户分群核对图查看大图
客户分群核对图

我会给每个簇起一个临时名字,并写出推荐动作。比如高收入高消费、低收入低消费、潜力客户。不能命名的簇,先别急着上线。

在商业领域,客户分群是一项重要的技术,能够帮助企业更好地理解客户行为,以便进行市场营销、产品推荐和服务优化等。本节将介绍如何使用 Scikit-Learn 框架进行客户分群。我们将采用 K-Means 聚类算法来实现这一目标。

1. 客户分群背景

客户分群的目的是将具有相似特征的客户分到同一组。这可以帮助企业了解不同客户群体的需求,从而制定有针对性的营销策略。例如,某些客户可能更倾向于高端产品,而另一些客户可能对价格敏感。

2. 数据准备

我们将使用一个示例数据集,假设这是一个包含客户信息的 CSV 文件,字段包括:

  • CustomerID:客户ID
  • Age:客户年龄
  • AnnualIncome:年收入
  • SpendingScore:消费得分

我们将使用 Scikit-Learn 的 K-Means 聚类算法,首先需要加载和预处理数据。

2.1 加载数据

以下是加载数据的代码示例:

import pandas as pd

# 加载客户数据集
data = pd.read_csv('customer_data.csv')

# 显示数据的前5行
print(data.head())

2.2 数据预处理

在数据预处理阶段,我们需要选择合适的特征并进行标准化处理,以确保聚类效果的准确性。

from sklearn.preprocessing import StandardScaler

# 选择要聚类的特征
X = data[['Age', 'AnnualIncome', 'SpendingScore']]

# 标准化特征
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

3. K-Means 聚类

3.1 选择聚类数

在 K-Means 中,选择合适的聚类数非常重要。我们可以使用肘部法则(Elbow Method)来帮助我们选择。

客户分群要点判断卡查看大图
客户分群要点判断卡

读这篇时,可以把「客户分群背景 -> 数据准备 -> 加载数据 -> 数据预处理」当成一条检查线:先看对象、路径和证据,再回到案例、代码或指标里复查。

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

# 肘部法则
wcss = []
for i in range(1, 11):
    kmeans = KMeans(n_clusters=i, random_state=42)
    kmeans.fit(X_scaled)
    wcss.append(kmeans.inertia_)

# 绘制肘部法则曲线
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()

通过查看肘部法则曲线,我们可以找到一个折点位置,从而选择 K 值。

3.2 应用 K-Means 进行聚类

一旦确定了聚类数,我们就可以使用 K-Means 进行聚类。

# 假设通过肘部法则我们选择了 4 个聚类
kmeans = KMeans(n_clusters=4, random_state=42)
data['Cluster'] = kmeans.fit_predict(X_scaled)

3.3 可视化聚类结果

我们可以使用散点图来可视化聚类结果。这里我们将只使用前两个特征进行可视化。

Scikit-Learn阅读地图卡查看大图
ScikitLearn阅读地图卡

《客户分群》适合边看图边读正文。先确认问题和判断标准,再看概念解释与练习步骤,信息会更容易连成一条线。

plt.figure(figsize=(10, 6))
plt.scatter(data[data['Cluster'] == 0]['AnnualIncome'], data[data['Cluster'] == 0]['SpendingScore'], s=100, label='Cluster 1')
plt.scatter(data[data['Cluster'] == 1]['AnnualIncome'], data[data['Cluster'] == 1]['SpendingScore'], s=100, label='Cluster 2')
plt.scatter(data[data['Cluster'] == 2]['AnnualIncome'], data[data['Cluster'] == 2]['SpendingScore'], s=100, label='Cluster 3')
plt.scatter(data[data['Cluster'] == 3]['AnnualIncome'], data[data['Cluster'] == 3]['SpendingScore'], s=100, label='Cluster 4')

# 绘制聚类中心点
plt.scatter(kmeans.cluster_centers_[:, 1], kmeans.cluster_centers_[:, 2], s=300, c='yellow', label='Centroids')
plt.title('Customer Segmentation')
plt.xlabel('Annual Income')
plt.ylabel('Spending Score')
plt.legend()
plt.show()

4. 结果分析与应用

通过客户分群,我们能够识别出不同的客户群体。企业能够针对每个群体制定不同的市场营销策略。

例如:

  • 针对消费得分高且年收入高的客户群体,企业可以推出高端产品推荐。
  • 对于年收入较低但消费得分高的客户,可以考虑提供优惠和促销活动来增强客户的忠诚度。
客户分群应用复盘卡查看大图
客户分群应用复盘卡

读到这里,可以把《客户分群》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

客户分群应用检查卡查看大图
客户分群应用检查卡

读完《客户分群》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

小结

在本节中,我们详细介绍了如何利用 Scikit-Learn 框架实现客户分群。通过 K-Means 聚类算法,我们能够将客户根据特征分成多个群体,从而为后续的商业决策提供有力支持。

在下节中,我们将继续探讨如何应用集成学习方法来提升模型性能。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

客户分群适合谁读?

这是 Scikit-learn 入门 系列第 24 / 24 篇,适合正在学习Scikit-learn 入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇Scikit-learn 入门教程要多久?

按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...