欢迎光临
我们一直在努力

AI 客户分群进化论:从规则分群到 AI 聚类再到动态标签

AI 客户分群进化论:从规则分群到 AI 聚类再到动态标签

一、客户分群这件事,你做对了吗

"把用户分成新用户、活跃用户、沉睡用户"——这大概是每个数据分析师都做过的事情。基于几行 SQL 的 IF-ELSE 规则,简单粗暴地把用户打上标签。

问题在哪呢?用户的行为从来不是非黑即白的。一个"沉睡用户"昨天刚浏览了 5 个商品页面,一个"活跃用户"可能三个月没下单只是天天签到领积分。规则分群太僵硬了,它只能描述你已知的模式,发现不了你未知的规律。

今天这篇文章,我想沿着客户分群的进化路线走一遍:从规则的起点,到 AI 聚类的升级,再到动态标签体系。

客户分群三阶段的进化路径:

二、V1:规则分群——SQL 一把梭

规则分群是最入门的玩法,核心就是 SQL + CASE WHEN:

— 传统规则分群:基于 RFM 模型的简单实现
— R: 最近消费时间(Recency)
— F: 消费频次(Frequency)
— M: 消费金额(Monetary)
SELECT
user_id,
DATEDIFF(CURRENT_DATE, last_order_date) AS recency_days,
total_orders AS frequency,
total_amount AS monetary,
CASE
— 高价值用户:最近消费 + 高频 + 高金额
WHEN DATEDIFF(CURRENT_DATE, last_order_date) <= 30
AND total_orders >= 5
AND total_amount >= 1000
THEN '高价值用户'

— 重要发展用户:最近消费 + 高频,但金额偏低
WHEN DATEDIFF(CURRENT_DATE, last_order_date) <= 30
AND total_orders >= 3
THEN '重要发展用户'

— 重要挽留用户:曾经是高价值但已流失
WHEN DATEDIFF(CURRENT_DATE, last_order_date) > 60
AND total_orders >= 5
AND total_amount >= 1000
THEN '重要挽留用户'

— 一般用户
WHEN DATEDIFF(CURRENT_DATE, last_order_date) <= 90
THEN '一般活跃用户'

— 流失用户
ELSE '流失用户'
END AS user_segment
FROM user_rfm_summary;

这套逻辑的优点是快速、可解释、运营能看懂。但它的问题也很致命:

  • 阈值是拍脑袋的:为什么是 30 天而不是 28 天?
  • 维度太少了:只看交易行为,忽略了浏览、收藏、加购等行为
  • 无法发现隐藏模式:一些用户可能在浏览维度上高度相似,但 RFM 完全看不到

三、V2:AI 聚类分群——让数据自己说话

聚类的核心思想是"让数据自己分组"。我们选的是 K-Means + PCA 降维可视化 的组合:

import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
from sklearn.metrics import silhouette_score

def ai_user_segmentation(df, feature_cols, k_range=range(3, 10)):
"""使用 K-Means 聚类进行 AI 驱动的用户分群

参数:
df: 包含用户行为特征的 DataFrame
feature_cols: 用于聚类的特征列
k_range: 尝试的聚类数量范围

返回:
最佳模型、聚类结果、每个簇的特征画像
"""
# Step 1: 特征标准化(聚类对尺度敏感,必须标准化)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(df[feature_cols])

# Step 2: 通过轮廓系数选择最佳 K 值
best_k = 3
best_score = -1

for k in k_range:
kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)
labels = kmeans.fit_predict(X_scaled)
score = silhouette_score(X_scaled, labels)

if score > best_score:
best_score = score
best_k = k

print(f"K={k}, 轮廓系数={score:.4f}")

print(f"\\n最优 K 值: {best_k}, 轮廓系数: {best_score:.4f}")

# Step 3: 用最优 K 值训练最终模型
final_model = KMeans(n_clusters=best_k, random_state=42, n_init=10)
df['cluster'] = final_model.fit_predict(X_scaled)

# Step 4: 生成每个簇的特征画像
cluster_profiles = df.groupby('cluster')[feature_cols].mean()

# 用 PCA 降到 2 维用于可视化
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
df['pca_x'] = X_pca[:, 0]
df['pca_y'] = X_pca[:, 1]

print(f"\\n=== 各簇用户占比 ===")
print(df['cluster'].value_counts(normalize=True).sort_index())

print(f"\\n=== 各簇特征均值 ===")
print(cluster_profiles.round(2))

return final_model, df, cluster_profiles

# 聚类特征示例(比 RFM 维度更丰富)
# feature_cols = [
# 'recency_days', # 距上次活跃天数
# 'order_count_30d', # 近30天下单数
# 'order_amount_90d', # 近90天消费金额
# 'browse_count_30d', # 近30天浏览商品数
# 'cart_add_count_30d', # 近30天加购次数
# 'coupon_use_count_30d', # 近30天用券次数
# 'avg_session_duration', # 平均会话时长(秒)
# 'review_count', # 累计评价数
# ]

在一次实际分析中,K-Means 帮我们发现了一个 RFM 规则完全没有捕捉到的群体——"浏览狂魔型"用户:几乎不下单,但每天浏览 50+ 个商品、加购 10+ 次但迟迟不下单。这群用户其实是最适合发券转化的目标,但按 RFM 规则他们被分成了"流失用户",直接放弃了。

聚类不是终点

AI 聚类虽然比规则分群更科学,但它有个致命局限:分群结果是一次性的静态快照。一个用户今天是"A 类"用户,明天行为变了,他不会自动变成"B 类"——除非你重新跑一遍聚类。

这就引出了第三阶段的问题:如何让分群动态起来。

四、V3:动态标签体系——让分群活起来

动态标签的核心思路是:不把用户关在一个固定的"群"里,而是给用户打上一系列实时更新的标签。这样运营同学可以根据活动目标灵活组合标签来圈定目标人群,而不需要通过数据团队反复跑 SQL 取数。

标签体系设计原则

  • 标签要分层级:一级分类(人口属性/行为偏好/消费能力/风险特征)→ 二级标签(性别/价格敏感度/流失风险)→ 标签值
  • 标签要有生命周期:不是所有标签都永久有效,要定义 TTL
  • 标签要可组合:运营应该能灵活组合标签,而不是被固定的分群框住
  • — 动态标签的实时更新逻辑(以 Kafka + Flink 为例)
    — 监听用户行为事件流,实时更新标签值

    — 示例:用户"价格敏感度"标签的计算逻辑
    — 触发条件:用户使用优惠券 → 价格敏感度 +1
    — 用户原价购买 → 价格敏感度 -1
    — 标签值范围: 0~100
    UPDATE user_tags
    SET
    tag_value = CASE
    WHEN tag_value + 1 > 100 THEN 100 — 上限 100
    ELSE tag_value + 1
    END,
    updated_at = NOW()
    WHERE user_id = 12345
    AND tag_name = 'price_sensitivity'
    AND event_type = 'coupon_used'; — 使用了优惠券

    五、总结

    客户分群的进化不只是技术升级,更是思维方式的变化:

  • V1 规则分群:适合快速启动,运营友好,但边界僵硬、维度有限
  • V2 AI 聚类:能发现隐藏模式,K-Means + 轮廓系数选 K 是标准操作,但结果是一次性快照
  • V3 动态标签:标签可组合、可过期、可实时更新,是真正的"千人千面"
  • 进阶不是"V3 替代 V1",而是三者共存:规则分群做日常运营,聚类做深度分析,动态标签做精细化触达
  • 标签体系最容易被忽视的是标签质量治理——无效标签要及时清理,否则运营会被"标签噪音"淹没
  • 你们现在用的是哪个阶段的方法?还在 RFM 吗,还是已经有自己的标签平台了?评论区说说现状,一起交流~

    最后提醒一点:这个方案在上生产之前建议先用灰度流量验证一周,确认资源消耗在预期范围内再全量推送。我们在实际项目中因为跳过了这步,有一次把缓存集群打挂了,教训深刻。

    赞(0)
    未经允许不得转载:171主机测评 » AI 客户分群进化论:从规则分群到 AI 聚类再到动态标签
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址