【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二级中包含了模型搭建的详细内容,对于数据岗的工作来说特别有帮助,一些企业可以给报销考试费。

相关推荐
qunaa01012 小时前
YOLOv26太空探索目标识别与分类【地球景观、国际空间站模块及UFO检测全攻略】_包含数据集与代码实现
yolo·分类·数据挖掘
忘忧记2 小时前
panndas数据分析综合案例
数据挖掘·数据分析
科技块儿2 小时前
如何高效查询海量IP归属地?大数据分析中的IP查询应用
网络·tcp/ip·数据分析
CDA数据分析师干货分享2 小时前
【CDA干货】客户分群建模——RFM+K-Means用户画像——电商用户数据分析全流程:从数据到增长决策
算法·机器学习·数据挖掘·数据分析·kmeans·cda证书
沃达德软件2 小时前
巡防勤务可视化管理
大数据·人工智能·数据挖掘·数据分析
永霖光电_UVLED2 小时前
连续波 UV-B 激光二极管问世,实现全球首次
大数据·人工智能·uv
一只大侠的侠2 小时前
从零搭建车联网数据分析平台:技术架构与实战落地
架构·数据挖掘·数据分析
Aloudata2 小时前
数据工程新范式:基于 NoETL 语义编织实现自助下钻分析
数据分析·指标平台·数据工程·noetl·语义层
CHrisFC3 小时前
江苏硕晟 LIMS 系统:加速环境检测机构合规化进程的利器
大数据·人工智能