Skip to content

selfDiscipline/DeepLearningForTSF

 
 

Repository files navigation

DeepLearningForTimeSeriesForecasting

通过深度学习技术以进行时间序列预测

序言

  • 7天迷你课
  3.用于时间序列预测的MLP  
  4.用于时间序列预测的CNN  
  5.用于时间序列预测的LSTM  
  6.编码器-解码器LSTM多步预测  
  7.用于时间序列预测的CNN-LSTM  

一、预测趋势和季节性(单变量)

1.基于SARIMA预测的网格搜索超参数优化

  1.网格搜索框架  
  2.无趋势和季节性研究  
  3.趋势性研究  
  4.季节性研究  
  5.趋势和季节性研究  
  • 1_1.为时间序列预测创建ARIMA模型
  1.数据预览  
  2.预览一下数据的自相关图  
  3.预览残差图和残差的密度分布图  
  4.滑动窗口预测ARIMA模型  
  • 1_2.如何网格搜索ARIMA超参数
  每日女性出生研究  
  洗发水销售研究  
  • 1_3.自相关和篇自相关介绍
  1.自相关ACF图  
  2.偏自相关PACF图  

2.基于三重指数平滑预测的网格搜索超参数优化

  1.网格搜索框架  
  2.无趋势和季节性研究  
  3.趋势性研究  
  4.季节性研究  
  5.趋势和季节性研究  

3.单变量时间序列预测开发深度学习模型

  2.多层感知器模型  
  3.卷积神经网络模型_CNN  
  4.递归神经网络模型_LSTM  
  5.递归神经网络模型_CNN+LSTM  
  6.递归神经网络模型_ConvLSTM2D  

二、几种模型类型

1.用于时间序列预测的MLP

  01.(多步+单变量输入)_(单步+单变量输出)_监督学习数据
  02.(多步+单变量输入)_(单步+单变量输出)_MLP模型
  03.(多步+多变量输入)_(单步+单变量输出)_监督学习数据
  04.(多步+多变量输入)_(单步+单变量输出)_MLP模型
  05.(多步+多变量输入)_(单步+多变量输出)_监督学习数据
  06.(多步+多变量输入)_(单步+多变量输出)_MLP模型
  07.多路输入_(多步+多变量输入)_(单步+单变量输出)_MLP模型
  08.多路输出_(多步+多变量输入)_(单步+多变量输出)_MLP模型
  09.(多步+单变量输入)_(多步+单变量输出)_监督学习数据
  10.(多步+单变量输入)_(多步+单变量输出)_MLP模型
  11.(多步+多变量输入)_(多步+单变量输出)_监督学习数据
  12.(多步+多变量输入)_(多步+单变量输出)_MLP模型
  13.(多步+多变量输入)_(多步+多变量输出)_监督学习数据
  14.(多步+多变量输入)_(多步+多变量输出)_MLP模型

2.用于时间序列预测的CNN

  01.(多步+单变量输入)_(单步+单变量输出)_监督学习数据
  02.(多步+单变量输入)_(单步+单变量输出)_CNN模型
  03.(多步+多变量输入)_(单步+单变量输出)_监督学习数据
  04.(多步+多变量输入)_(单步+单变量输出)_CNN模型
  05.(多步+多变量输入)_(单步+多变量输出)_监督学习数据
  06.(多步+多变量输入)_(单步+多变量输出)_CNN模型
  07.多路输入_(多步+多变量输入)_(单步+单变量输出)_CNN模型
  08.多路输出_(多步+多变量输入)_(单步+多变量输出)_CNN模型
  09.(多步+单变量输入)_(多步+单变量输出)_监督学习数据
  10.(多步+单变量输入)_(多步+单变量输出)_CNN模型
  11.(多步+多变量输入)_(多步+单变量输出)_监督学习数据
  12.(多步+多变量输入)_(多步+单变量输出)_CNN模型
  13.(多步+多变量输入)_(多步+多变量输出)_监督学习数据
  14.(多步+多变量输入)_(多步+多变量输出)_CNN模型

3.用于时间序列预测的LSTM

  01.(多步+单变量输入)_(单步+单变量输出)_监督学习数据
  02.(多步+单变量输入)_(单步+单变量输出)_LSTM模型
  03.堆叠式LSTM+LSTM网络
  04.双向LSTM网络
  05.CNN+LSTM网络
  06.ConvLSTM网络
  07.(多步+多变量输入)_(单步+单变量输出)_LSTM模型
  08.(多步+多变量输入)_(单步+多变量输出)_LSTM模型
  09.(多步+单变量输入)_(多步+单变量输出)_LSTM模型
  10.Encoder-Decoder LSTM模型
  11.(多步+多变量输入)_(多步+单变量输出)_LSTM模型
  12.(多步+多变量输入)_(多步+多变量输出)_LSTM模型

三、人类活动识别(多变量分类)

1.如何根据智能手机数据对人类活动进行建模

  01.

四、时间序列案例研究

1.室内运动时间序列分类(KNN)

  01.加载数据集
  02.基本信息直方图
  03.画数据折线图,画数据最小二乘法线性拟合图
  04.将文件按照关联关系拼成train和test集合,每个文件取最后19条
  05.维度为19的数据分别代入7种模型进行评估准确性
  06.将文件按照关联关系拼成train和test集合,每个文件默认取25条,数据不足25则补0
  07.维度为25的数据分别代入7种模型进行评估准确性
  08.19和25维对比,KNN模型提升最显著,对KNN的k值网格搜索
  09.将08中效果最好的k=7的KNN模型加入评估列表

2.预测大气污染日的概率模型(决策树)

  1.数据特征预览
  2.将数据集中异常数据替换为0
  3.朴素的基线预测
  4.集成决策树预测模型(四种决策树对比)
  5.调整梯度提升模型的参数来提高性能

3.根据环境因素预测房间入住率(逻辑回归)

  01.画数据折线图观察数据
  02.将3个txt文件合并成一个
  03.制造假数据预测,作为参考系
  04.用多变量进行逻辑回归预测
  05.用单变量进行逻辑回归预测

4.使用脑电波预测眼睛睁闭(KNN)

  01.画出数据的折线图
  02.删除波动大于三倍标准差的异常值
  03.用KNN模型预测眼睛睁闭
  04.打乱数据顺序的预测
  05.不打乱数据顺序的预测

五、预测用电量(多变量,多步骤)

1.如何加载和探索家庭用电量数据

  01.替换文件中分号,转成csv格式
  02.8列数据的折线图
  03.将某一列数据按年分开显示
  04.2007年12个月功率的折线图
  05.2007年1月前20天功率的折线图
  06.8列数据的直方图
  07.2007-2010功率的直方图
  08.2007年12个月功率的直方图

2.机器学习的多步时间序列预测

  01.填充缺失数据,转换成csv
  02.将分钟级别数据合并成日级别
  03.以周为尺度,将数据分割成组
  04.用10个模型分别进行‘单变入_单变出’,前7天预测后1天
  05.使用7个模型分别对一周7天中的指定天进行预测(参考04解析)
  06.同04,可自定义输出数据是一周中的第几天,进行预测(参考04解析)

3.CNN网络的多步时间序列预测

  01.填充缺失数据,转换成csv
  02.将分钟级别数据合并成日级别
  03.以周为尺度,将数据分割成组
  04.CNN‘单变入_单变出’,前7天预测后7天
  05.CNN‘多变入_单变出’,前14天预测后7天
  06.CNN多路输入,‘多变入_单变出’,前14天预测后7天

六、6.预测空气污染(多变量,多步骤)

1.可视化和探索空气污染数据

  01.统计数据中的NaN值
  02.将数据按照标签分块
  03.画出数据连续图,看数据缺失情况
  04.判断每个数据块的起始时间(24小时中第几小时开始统计)分布图
  05.每个块的时间结构
  06.数据变量的分布
  07.目标块的时间结构
  08.目标变量的箱线图
  09.目标块通过柱状图看空值比例
  10.目标变量的直方图分布

2.空气污染预测的BaseLine模型

  01.将数据拆分成训练集和测试集
  02.用每个数据块整体的均值作为预测值
  03.用每一天中每小时的均值作为预测值
  04.用每个块的最后观察值作为预测值
  05.用每个数据块整体的中值作为预测值
  06.用每一天中每小时的中值作为预测值

3.空气污染预测的自回归模型

  01.将数据拆分成训练集和测试集  
  02.缺失数据展示  
  03.估算缺失数据(使用所有其他数据同一时间的中值作为估算值)  
  04.观察39列每列数据的自相关和偏相关图  
  05.建立自回归ARIMA模型(使用当前块相同小时的中值)  
  06.建立自回归ARIMA模型(使用所有块相同小时的中值)  

4.空气污染预测的多元多步机器学习模型

  01.将数据拆分成训练集和测试集
  02.构建监督学习型数据
  03.机器学习线性模型进行预测
  04.机器学习非线性模型进行预测

About

深度学习以进行时间序列预测

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%