AI预测-holt提取时序序列特征

本文详细讲解了Holt方法及其在Python中的应用,涉及技术点如特征提取、模型训练和优化。
摘要由CSDN通过智能技术生成

AI预测相关目录

AI预测流程,包括ETL、算法策略、算法模型、模型评估、可视化等相关内容
最好有基础的python算法预测经验

  1. EEMD策略及踩坑
  2. VMD-CNN-LSTM时序预测
  3. 对双向LSTM等模型添加自注意力机制
  4. K折叠交叉验证
  5. optuna超参数优化框架
  6. 多任务学习-模型融合策略
  7. Transformer模型及Paddle实现
  8. 迁移学习在预测任务上的tensoflow2.0实现
  9. holt提取时序序列特征


本文方法其发自《基于IAPSO-Holt-...CN的时序瓦斯浓度预测模型_温廷新》,更详细内容可参考文章内容

一、holt介绍

为发掘具有高度预测性的特征,充分运用特征变量间的线性或非线性关系,应用Holt可构建特征组合(FCIH)。
FCIH = 序列历史特征 及 holt挖掘出的特征
holt挖掘出的特征即序列相关的水平分量、趋势平滑特征分量。
在这里插入图片描述
当然,本文省略了超参数优化hlot模型的过程,该过程可参考AI预测合集-optuna超参数优化框架一文。


三、代码示例

自定义holt类

# 定义Holt线性趋势模型的类
class HoltLinear:
    def __init__(self, alpha=0.5, beta=0.5):
        self.alpha = alpha  # 趋势平滑系数
        self.beta = beta    # 趋势变化平滑系数

    # 训练模型
    def fit(self, data):
        T = len(data)
        l = np.zeros(T)    # 线性趋势
        b = np.zeros(T)    # 趋势变化率
        l[0] = data[0]
        b[0] = data[1] - data[0]

        for t in range(1, T):
            l[t] = self.alpha * data[t] + (1 - self.alpha) * (l[t-1] + b[t-1])
            b[t] = self.beta * (l[t] - l[t-1]) + (1 - self.beta) * b[t-1]

        self.l = l
        self.b = b

    # 预测未来值
    def predict(self, steps):
        T = len(self.l)
        y_pred = np.zeros(steps)

        for t in range(T, T+steps):
            y_pred[t-T] = self.l[T-1] + self.b[T-1] * (t - T + 1)

        return y_pred,self.l,self.b

应用类提取特征

data = pd.read_excel('train_data.xlsx', usecols=[5])
series_close = pd.Series(data["平均风速(m/s)"].values)

model = HoltLinear(alpha=0.2, beta=0.3)
model.fit(series_close)
forecast4,xgsp,phtz = model.predict(5)

总结

完结,撒花!

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码的中青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值