task2打卡:天池时间序列baseline学习

前言

上一个task我捋顺了提交天池竞赛代码的全过程,此处跳转上一个task,过后通过baseline学习前辈的baseline,参考学习的链接跳转,以及开源学习

task2优化

baseline学习中是使用tensorflow的框架搭建的,也可以换为pytorch。

遇到的问题

一直上传不了。。。加上我的jupyter它崩了,尝试一切办法无法解决,最后不得不卸载重装,所以先打卡吧,后面继续改错。。。并且还是需要不断跟着前辈们学习。
在这里插入图片描述

### 时间序列预测的基准方法 对于时间序列预测,构建一个合理的基线模型是非常重要的。这不仅有助于理解数据本身的特点,也为后续更复杂模型的效果提供了对比标准。 #### 平均法 最简单的基线模型之一是平均法,该方法假设未来值等于历史观测值的算术平均数。这种方法虽然简单,但在某些情况下能够提供较为稳定的预测结果[^1]。 ```python def mean_forecast(data, forecast_length): """ 使用过去的数据计算均值作为未来的预测值 参数: data (list): 历史时间序列数据列表 forecast_length (int): 需要预测的时间步长数量 返回: list: 包含预测值的结果列表 """ avg_value = sum(data) / len(data) return [avg_value] * forecast_length ``` #### 移动平均法 移动平均法则考虑了一定窗口期内的历史数值来估计下一个时刻的值。相比全局平均而言,这种方式更能捕捉到近期趋势变化的影响。 ```python import numpy as np def moving_average_forecast(series, window_size=5): """基于给定大小滑窗内的均值来进行一步向前预测""" forecasts = [] for i in range(len(series)-window_size+1): window_mean = np.mean(series[i:i+window_size]) forecasts.append(window_mean) # 补充最后几个无法形成完整窗口的位置 last_window_avg = np.mean(series[-window_size:]) remaining_predictions = [last_window_avg]*(len(series)+forecast_steps-len(forecasts)) return forecasts + remaining_predictions[:forecast_steps] ``` #### 自回归积分滑动平均(ARIMA)模型 当面对具有明显季节性和长期趋势特征的时间序列时,ARIMA是一个常用的统计学建模工具。通过差分化处理使原序列为平稳过程之后再应用自回归项和/或移动平均成分进行拟合。 ```python from statsmodels.tsa.arima.model import ARIMA model = ARIMA(endog=data, order=(p,d,q)) # p: AR阶数; d: 差分次数; q: MA阶数 fitted_model = model.fit() predictions = fitted_model.forecast(steps=forecast_horizon) ``` 上述三种方式构成了不同类型的时间序列分析基础框架,在实际应用场景中可以根据具体需求选择合适的方法并加以改进优化[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值