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

BigQuery ML中支持多变量多时间序列的销售预测模型选型咨询

多品类带事件变量的销售预测解决方案

BigQuery原生批量多变量多序列模型实现

  • 利用ARIMA_PLUS_XREG的分区训练能力
    无需手动循环300次,通过指定TIME_SERIES_ID_COL参数,BigQuery会自动为每个品类(序列ID)单独训练带外生变量的模型。具体SQL示例:

    CREATE OR REPLACE MODEL `your_project.your_dataset.multi_category_forecast`
    OPTIONS(
      MODEL_TYPE='ARIMA_PLUS_XREG',
      TIME_SERIES_TIMESTAMP_COL='日期',
      TIME_SERIES_DATA_COL='销售额',
      TIME_SERIES_ID_COL='品类ID', -- 按品类ID自动分区训练每个序列
      AUTO_ARIMA=TRUE,
      DATA_FREQUENCY='DAILY'
    ) AS
    SELECT
      品类ID,
      日期,
      销售额,
      是否有促销事件 AS event_promotion, -- 事件变量作为外生输入
      是否有节日 AS event_holiday
    FROM `your_project.your_dataset.sales_history_with_events`;
    

    训练完成后,直接用该模型批量预测所有品类的销售额,无需单独调用每个序列的模型。

  • 关键注意点

    • 保证每个品类的时间序列数据有足够长度(建议至少1年历史数据)
    • 事件变量需与时间戳严格对应,避免时间错位导致模型偏差

其他简易多变量多序列可选模型

如果BigQuery方案不符合需求,可考虑以下轻量实现:

  • Facebook Prophet批量训练
    Prophet原生支持添加事件/节假日作为外生变量,通过Python并行库可快速处理300个序列。示例代码:
    from prophet import Prophet
    import pandas as pd
    from joblib import Parallel, delayed
    
    def train_single_category(df, cat_id):
        # 筛选当前品类数据
        cat_data = df[df['品类ID'] == cat_id].rename(columns={'日期': 'ds', '销售额': 'y'})
        model = Prophet()
        # 添加事件变量
        model.add_regressor('event_promotion')
        model.add_regressor('event_holiday')
        model.fit(cat_data)
        # 生成未来预测时间范围并填充事件变量
        future = model.make_future_dataframe(periods=30)
        future['event_promotion'] = get_future_events(future, 'promotion')
        future['event_holiday'] = get_future_events(future, 'holiday')
        # 生成预测结果
        forecast = model.predict(future)
        return forecast.assign(品类ID=cat_id)
    
    # 并行训练所有品类
    sales_data = pd.read_gbq('SELECT * FROM your_project.your_dataset.sales_history_with_events')
    all_forecasts = Parallel(n_jobs=-1)(
        delayed(train_single_category)(sales_data, cat_id)
        for cat_id in sales_data['品类ID'].unique()
    )
    final_forecast_df = pd.concat(all_forecasts)
    
  • 统一式树模型(LightGBM/XGBoost)
    将时间特征(滞后销售额、滚动均值)、事件变量、品类属性作为输入,训练一个全局模型预测销售额。这种方式无需为每个序列单独训练,适合品类间存在共性规律的场景,实现成本低且推理速度快。

内容的提问来源于stack exchange,提问作者Cristian Avendaño

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:57:36