【CDA干货】预测建模——CLV与营收趋势预测——电商用户数据分析全流程:从数据到增长决策

场景:预测建模------CLV与营收趋势预测

1. 业务背景
  • CLV(用户生命周期价值):预测单个用户未来6个月的消费金额;

  • 营收趋势:预测未来3个月的整体营收,指导库存/预算规划。

2. 建模代码(对应仓库notebooks/forecasting)

运用机器学习技术,基于电商客户的行为与交易数据开展客户分群分析,核心目标是识别出特征鲜明的客户群体,为精准营销、产品推荐及客户留存策略的制定提供决策依据。

1.加载和准备数据

  • 加载数据集

  • 解析日期字段并核查时间粒度

  • 将销售数据聚合至日度或周度维度

    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt

    Load data

    sales_df = pd.read_csv('../../data/ecommerce_transactions.csv', parse_dates=['purchase_date'])

    Extract date only (if datetime includes time)

    sales_df['event_date'] = sales_df['purchase_date'].dt.date

    Aggregate daily sales

    daily_sales = sales_df.groupby('event_date')['purchase_amount'].sum().reset_index(name='total_sales')
    daily_sales['event_date'] = pd.to_datetime(daily_sales['event_date'])
    daily_sales.set_index('event_date', inplace=True)

    Preview

    daily_sales.head()

2.可视化时间序列

  • 绘制销售趋势图,识别潜在的业务规律

    plt.figure(figsize=(12,6))
    daily_sales['total_sales'].plot(label='Daily Sales', alpha=0.5)
    daily_sales['total_sales'].rolling(window=7).mean().plot(label='7-Day Moving Avg', linewidth=2)
    plt.title('Daily Total Sales with 7-Day Moving Average')
    plt.xlabel('Date')
    plt.ylabel('Total Sales')
    plt.grid(True)
    plt.legend()
    plt.savefig('../../assets/forecasting/daily_total_sales_time_series.png', bbox_inches='tight', dpi=300)
    plt.show()

解释:

日度销售额走势图显示数据波动性较强,涨跌波动频繁,反映出客户消费行为的不稳定性。

叠加 7 日移动平均线后可呈现出更为平缓的趋势曲线,便于识别出持续性增长、阶段性回落或季节性周期等特征。这种平滑后的趋势视图,能够为更精准的销售预测和促销节点规划提供有力支撑。

3.时间序列分解

  • 运用 STL 分解法识别趋势、季节性特征及残差项

    from statsmodels.tsa.seasonal import STL

    stl = STL(daily_sales['total_sales'], period=7)
    result = stl.fit()
    result.plot()
    plt.savefig('../../assets/forecasting/daily_total_sales_decomposition.png', bbox_inches='tight', dpi=300)
    plt.show()

解释:

STL 分解法将销售数据信号拆解为三个核心构成部分:

  • 趋势项:近月呈现出温和的下行走势,表明整体需求存在潜在走弱的迹象

  • 季节性项:可观测到周度周期性规律,这一特征大概率由工作日 / 周末的消费行为差异,或周期性促销活动驱动

  • 残差项:残差噪声呈现随机分布状态,无明显规律可循,说明模型已有效捕捉到核心的趋势特征与季节性波动

4.训练/测试划分

  • 预留最后 30 天的数据作为验证集

    train = daily_sales.iloc[:-30]
    test = daily_sales.iloc[-30:]

5.预测模型

  • 基于训练集数据拟合 Prophet 模型

  • 预测未来 30 天的业务数据

    from prophet import Prophet
    import matplotlib.pyplot as plt

    df_prophet = daily_sales.reset_index().rename(columns={'event_date': 'ds', 'total_sales': 'y'})

    Fit Prophet model

    prophet = Prophet(daily_seasonality=True)
    prophet.fit(df_prophet)

    Create future dataframe

    future = prophet.make_future_dataframe(periods=30)
    forecast = prophet.predict(future)

    Plot forecast

    plt.figure(figsize=(12, 6))
    fig = prophet.plot(forecast)
    plt.title("Sales Forecast (Prophet)")
    plt.xlabel("Date") # replaces 'ds'
    plt.ylabel("Total Sales") # replaces 'y'
    plt.grid(True)
    plt.savefig('../../assets/forecasting/daily_sales_forecast_prophet.png', bbox_inches='tight', dpi=300)
    plt.show()

解释

  • 趋势项:预测结果整体保持平稳,表明预期销量不存在显著的上升或下降趋势

  • 季节性项:模型捕捉到了规律性的周度波动特征,这一结果反映出稳定的需求周期(例如工作日与周末的消费行为差异)

  • 不确定性:部分区间的预测范围较宽,表明对应时间段的销量波动较大或近期可用数据有限,这可能会对预测结果的可信度造成影响

6.预测准确性

  • 对比测试集上的预测值与实际值

  • 计算平均绝对误差(MAE)和均方根误差(RMSE)

    from sklearn.metrics import mean_absolute_error, mean_squared_error
    import numpy as np

    Extract forecasted values for test period

    forecast_test = forecast.set_index('ds').loc[test.index]['yhat']
    mae = mean_absolute_error(test['total_sales'], forecast_test)
    rmse = np.sqrt(mean_squared_error(test['total_sales'], forecast_test))

    print(f'MAE: {mae:.2f}')
    print(f'RMSE: {rmse:.2f}')

  • 该模型能够捕捉整体趋势与季节性特征,但日度数据中的随机噪声导致了中度预测误差。

  • 均方根误差(RMSE)略高于平均绝对误差(MAE),这一结果表明预测过程中存在偶发性的大幅偏差,而这类偏差大概率与促销活动或异常订单相关。

7.商业解读

销售额呈现显著的周度季节性特征且长期趋势保持稳定,预测模型能提供低偏差的可靠短期预测,可有效支撑需求规划、库存管理及预算分配等业务决策;从模型表现来看,Prophet 模型较好地拟合了销售数据的趋势与季节性特征,RMSE 约为 540,这一数值虽反映出日度销售额存在波动性,但模型整体预测跟踪效果良好,而纳入节假日效应或营销活动因素则能进一步提升预测准确性;基于上述业务解读与核心结论,建议每周开展滚动预测以支撑库存决策、构建品类级预测模型助力精细化规划、将预测模型与营销日历联动以实现营销活动增量的动态调整。

数字化时代,数据分析能力是职场的刚需技能,如果你想提升工作效率,强烈建议可以考个CDA证书,对于数据分析来说,业务分析是最重要的,所以是CDA数据分析师一级把业务分析模型作为重要考点,CDA一级从怎么采数据、清数据,到用 Excel、SQL、Python 做分析,都能学明白。学会了这些,不管是换工作做数据分析,还是在现在的岗位上帮公司做决策,都能用得上。

CDA数据分析师证书,与CPA注会、CFA特许金融师并驾齐驱,其权威性与实用性不言而喻。在互联网行业中,应用数据分析是非常适配的,该行业数据量庞大、发展快。CDA数据分析师在互联网行业的数据岗中认可度非常高,一般都要求考过CDA数据分析师二级,CDA二级中包含了模型搭建的详细内容,对于数据岗的工作来说特别有帮助。

CDA数据分析师之所以备受青睐,离不开它广泛的企业认可度。众多知名企业在招聘数据分析师时,都会明确标注CDA持证人优先考虑。像是中国联通、德勤、苏宁等大型企业,更是将CDA持证人列为重点招募对象,甚至为员工的CDA考试提供补贴,鼓励他们提升数据处理与分析能力。这足以证明,CDA证书在求职过程中,能为你增添强大的竞争力,使你从众多求职者中脱颖而出。

CDA数据分析师在银行业的数据岗中认可度非常高,一般都要求考过CDA数据分析师二级,CDA二级中包含了模型搭建的详细内容,对于数据岗的工作来说特别有帮助,一些企业可以给报销考试费。

相关推荐
武子康8 小时前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康1 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库2 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟2 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人2 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长2 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人2 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城2 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark
中烟创新2 天前
灯塔AI智能体获评“2025-2026中国数智科技年度十大创新力产品”
大数据·人工智能·科技