You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按邮件打开星期偏好进行客户分群的技术实现咨询

客户邮件打开偏好分群方案

一、数学层面核心思路

本质是聚类分析:把每个客户转化为7维特征向量(对应周一至周日的邮件打开行为,比如打开次数占比、打开率等),通过聚类算法(优先选K-Means,易实现、解释性强)将行为模式相似的客户归为同一群组。

二、各工具实现方案

1. Python/Pandas + Scikit-learn 实现

步骤:

  • 数据预处理:将客户-星期的打开数据整理成宽表(每行一个客户,列是周一到周日的特征值)
  • 聚类建模:用K-Means算法分群
  • 结果输出:给每个客户打上Segment标签

代码示例:

import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler

# 1. 读取长表数据(结构:customer_id, weekday, open_count)
df = pd.read_csv("email_open_data.csv")

# 2. 转成宽表:每行对应一个客户,列是各星期的打开次数
wide_df = df.pivot_table(index="customer_id", columns="weekday", values="open_count", fill_value=0)

# 3. 标准化特征(K-Means对数据尺度敏感,消除量纲影响)
scaler = StandardScaler()
scaled_features = scaler.fit_transform(wide_df)

# 4. 训练K-Means(假设分4个群组,可通过肘部法确定最优K值)
kmeans = KMeans(n_clusters=4, random_state=42)
wide_df["Segment"] = kmeans.fit_predict(scaled_features)

# 5. 查看各群组的星期打开偏好特征
segment_profiles = wide_df.groupby("Segment").mean().round(2)
print(segment_profiles)

2. Excel 实现

步骤:

  • 数据整理:用数据透视表将长表转成宽表(行=客户ID,列=星期,值=打开次数)
  • 数据标准化:用STANDARDIZE函数对每个星期的列做标准化处理
  • 聚类分析:通过Excel「数据分析」工具(需先加载)里的「K均值聚类」功能完成分群
  • 匹配标签:将聚类结果对应回原数据,生成Segment列

操作要点:

  • 加载数据分析工具:文件→选项→加载项→勾选「分析工具库」
  • 运行K均值:点击「数据」→「数据分析」→选择「K均值聚类」,设置输入区域、聚类数、输出区域,最终得到每个客户的聚类编号(即Segment)

3. SQL 实现

SQL本身不适合复杂聚类运算,可先完成数据预处理,再导出到Python/Excel做聚类;若使用支持ML的SQL引擎(如BigQuery ML),可直接实现:

BigQuery ML 聚类示例:

-- 1. 生成客户-星期的宽表
CREATE OR REPLACE TABLE email_open_wide AS
SELECT
  customer_id,
  SUM(IF(weekday = 'Monday', open_count, 0)) AS mon_open,
  SUM(IF(weekday = 'Tuesday', open_count, 0)) AS tue_open,
  SUM(IF(weekday = 'Wednesday', open_count, 0)) AS wed_open,
  SUM(IF(weekday = 'Thursday', open_count, 0)) AS thu_open,
  SUM(IF(weekday = 'Friday', open_count, 0)) AS fri_open,
  SUM(IF(weekday = 'Saturday', open_count, 0)) AS sat_open,
  SUM(IF(weekday = 'Sunday', open_count, 0)) AS sun_open
FROM email_open_data
GROUP BY customer_id;

-- 2. 训练K-Means聚类模型
CREATE OR REPLACE MODEL email_segment_model
OPTIONS(model_type='kmeans', num_clusters=4, standardize_features=True) AS
SELECT mon_open, tue_open, wed_open, thu_open, fri_open, sat_open, sun_open
FROM email_open_wide;

-- 3. 生成每个客户的Segment标签
SELECT
  customer_id,
  cluster_id AS Segment
FROM ML.PREDICT(MODEL email_segment_model, TABLE email_open_wide);

三、Segment标签优化

聚类得到的数字编号(0、1、2...)可根据群组行为模式重命名,比如:

  • Segment 0:「周末活跃型」(周六周日打开占比最高)
  • Segment 1:「工作日全勤型」(周一至周五打开量均较高)
  • Segment 2:「周中偏好型」(周三、周四打开率显著高于其他时段)
  • Segment 3:「低活跃型」(全周打开次数均偏低)

内容的提问来源于stack exchange,提问作者RedVII

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:23:00