如何在StatsForecast中使用特征?含自定义特征前置创建问询
在StatsForecast中使用自定义特征的方法
你可以通过以下两种方式在StatsForecast中引入特征(如移动平均、滞后项、自定义函数生成的特征):
方法一:提前在Pandas中手动构造特征
这是最直接且自由度最高的方式——先在DataFrame里生成所需特征,再传入StatsForecast进行模型拟合,就像你给出的示例那样:
# 创建滞后项和时间特征 df['lag1'] = df['y'].shift(1) df['day'] = df['timestamp'].dt.day # 传入包含自定义特征的DataFrame初始化模型 fcst = StatsForecast( df, models = [(auto_arima,7)], freq = 'D', n_jobs = min(len(m4_daily_train.index.unique()),cpu_count()) )
你还可以用这种方式生成移动平均等其他特征:
# 添加7日移动平均特征 df['ma7'] = df['y'].rolling(window=7).mean()
方法二:结合StatsForecast内置能力(针对特定模型)
对于StatsForecast中的机器学习类模型(如MLP、XGBoost),可以通过features参数指定要使用的特征列,或结合ForecastHorizon自动生成时序相关特征。但对于AutoARIMA这类传统时序模型,更推荐用第一种手动构造的方式,因为这类模型对外部特征的支持需要明确传入已处理好的特征列。
注意:生成滞后项这类特征时,要处理好shift()等操作产生的缺失值(比如用填充、删除缺失行的方式),避免影响模型拟合。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

