跳到主要内容

用户分群

问题

什么是用户分群?有哪些分群方法?如何应用于运营?

答案

什么是用户分群

用户分群是把用户划分为特征相似的群体,让运营策略从"一刀切"变为"千人千面"。

分群方法对比

方法原理优势适用
规则分群手动设定条件简单、可解释快速分群、明确业务规则
RFM 分层交易行为三维度经典、通用电商用户价值分层
K-Means 聚类算法自动发现群体数据驱动无先验假设时
标签组合多维标签叠加灵活精准营销圈人

规则分群示例

按生命周期阶段分群
SELECT
user_id,
CASE
WHEN register_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
AND order_count = 0
THEN '新用户-未转化'
WHEN register_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
AND order_count > 0
THEN '新用户-已转化'
WHEN last_active_date >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
AND order_count >= 3
THEN '活跃忠诚用户'
WHEN last_active_date >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
AND order_count < 3
THEN '活跃普通用户'
WHEN last_active_date BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 90 DAY)
AND DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
THEN '沉默用户'
ELSE '流失用户'
END AS user_segment
FROM user_profile;

K-Means 聚类分群

K-Means 用户聚类
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# 准备特征
features = df[['recency', 'frequency', 'monetary', 'avg_session_duration']]

# 标准化(K-Means 对量纲敏感)
scaler = StandardScaler()
features_scaled = scaler.fit_transform(features)

# 聚类(先用肘部法确定 K)
kmeans = KMeans(n_clusters=5, random_state=42, n_init=10)
df['cluster'] = kmeans.fit_predict(features_scaled)

# 分析每个群体的特征
print(df.groupby('cluster')[['recency', 'frequency', 'monetary']].mean())
确定 K 值
  • 肘部法:画 K vs 惯性(inertia)曲线,找拐点
  • 轮廓系数:衡量聚类质量,越接近 1 越好
  • 业务可解释性:聚类结果要让运营能理解和执行,K 不宜太大(通常 3~8)

分群运营策略

用户群运营目标具体动作
新用户未转化促首单首单优惠券、新手引导
高价值活跃留住VIP 权益、专属服务
沉默用户召回Push/短信、大额优惠
流失用户放弃或低成本触达邮件、节日问候
高频低客单提客单价满减、套餐推荐

常见面试问题

Q1: 用户分群和用户画像有什么区别?

答案

对比用户分群用户画像
粒度把用户分成群体描述单个用户
输出分群标签(高价值/沉默/流失)完整 profile(年龄+偏好+消费力)
目的群体策略个性化推荐
关系画像是分群的输入分群是画像的应用

Q2: K-Means 聚类的结果怎么解读?

答案

  1. 看每个 cluster 的中心点特征(均值)
  2. 给每个 cluster 起一个业务含义的名字
  3. 和业务同学一起验证是否合理
  4. 如果某个 cluster 的特征不明显,考虑调整 K 值或特征选择

Q3: 分群颗粒度太细,运营执行不过来怎么办?

答案

  • 分层聚合:先分 3~5 个大群(如新/活跃/沉默/流失),再在大群内细分
  • 优先级排序:ROI 最高的群体优先运营
  • 自动化:用标签系统 + 自动化消息,减少人工

相关链接