简介 |
![]()
编辑推荐 借助Python、深度学习和时间序列数据,你可以预测未来!时间序列预测是一种以时间为中心的数据建模技术,用于识别即将发生的事件。新的Python库和强大的深度学习工具使准确预测时间序列比以往任何时候都更容易。 本书教你如何从基于时间的数据(例如日志、客户分析和其他事件流)获得即时、有意义的预测。作者通过带注释的Python代码全面演示用于时间序列预测的统计和深度学习方法,并通过一些项目(比如预测未来的药物处方数量)来帮助你巩固和拓展所学知识,提升预测技能,有效解决实际问题。 本书涵盖: ·为季节性效应和外部变量创建模型。 ·用多元预测模型来预测多元时间序列。 ·用于大规模数据集的深度学习。 ·自动化预测过程。 本书适合熟悉Python和TensorFlow的数据分析师和数据科学家阅读。 内容推荐 本书教你如何从基于时间的数据(如日志、客户分析和其他事件流)中获得即时、有意义的预测。在这本通俗易懂的书中,作者通过带有注释的Python代码进行全面演示,你将学习用于时间序列预测的统计和深度学习方法。通过跟随书中的实例锻炼你的技能,你很快就会准备好建立自己的准确、有洞察力的预测。 目录 目 录<br />译者序<br />前 言<br />致 谢<br />第一部分 时间不等人<br />第1章 了解时间序列预测 3<br />1.1 时间序列简介 4<br />1.2 时间序列预测概览 7<br />1.2.1 设定目标 8<br />1.2.2 确定预测对象 8<br />1.2.3 设置预测范围 8<br />1.2.4 收集数据 8<br />1.2.5 开发预测模型 8<br />1.2.6 部署到生产中 9<br />1.2.7 监控 9<br />1.2.8 收集新的数据 9<br />1.3 时间序列预测与其他回归任务的<br />差异 10<br />1.3.1 时间序列有顺序 10<br />1.3.2 时间序列有时没有特征 10<br />1.4 下一步 11<br />第2章 对未来的简单预测 12<br />2.1 定义基线模型 13<br />2.2 预测历史均值 14<br />2.2.1 基线实现准备 15<br />2.2.2 实现历史均值基线 16<br />2.3 预测最后一年的均值 19<br />2.4 使用最后已知数值进行预测 21<br />2.5 实现简单的季节性预测 22<br />2.6 下一步 23<br />第3章 来一次随机游走 25<br />3.1 随机游走过程 26<br />3.2 识别随机游走 29<br />3.2.1 平稳性 29<br />3.2.2 平稳性检验 31<br />3.2.3 自相关函数 34<br />3.2.4 把它们组合在一起 34<br />3.2.5 GOOGL是随机游走吗 37<br />3.3 预测随机游走 39<br />3.3.1 长期预测 39<br />3.3.2 预测下一个时间步长 44<br />3.4 下一步 46<br />3.5 练习 46<br />3.5.1 模拟和预测随机游走 46<br />3.5.2 预测GOOGL的每日收盘价 47<br />3.5.3 预测你选择的股票的每日<br />收盘价 47<br />第二部分 使用统计模型进行预测<br />第4章 移动平均过程建模 51<br />4.1 定义移动平均过程 52<br />4.2 预测移动平均过程 57<br />4.3 下一步 64<br />4.4 练习 65<br />4.4.1 模拟MA(2)过程并做预测 65<br />4.4.2 模拟MA(q)过程并做预测 65<br />第5章 自回归过程建模 67<br />5.1 预测零售店平均每周客流量 67<br />5.2 定义自回归过程 69<br />5.3 求平稳自回归过程的阶数 70<br />5.4 预测自回归过程 76<br />5.5 下一步 82<br />5.6 练习 82<br />5.6.1 模拟AR(2)过程并做预测 82<br />5.6.2 模拟AR(p)过程并做预测 83<br />第6章 复杂时间序列建模 84<br />6.1 预测数据中心带宽使用量 85<br />6.2 研究自回归移动平均过程 86<br />6.3 确定一个平稳的ARMA过程 88<br />6.4 设计一个通用的建模过程 91<br />6.4.1 了解AIC 92<br />6.4.2 使用AIC选择模型 93<br />6.4.3 了解残差分析 95<br />6.4.4 进行残差分析 99<br />6.5 应用通用建模过程 102<br />6.6 预测带宽使用情况 108<br />6.7 下一步 112<br />6.8 练习 113<br />6.8.1 对模拟的ARMA(1,1)过程<br />进行预测 113<br />6.8.2 模拟ARMA(2,2)过程并<br />进行预测 113<br />第7章 非平稳时间序列预测 115<br />7.1 定义差分自回归移动平均模型 116<br />7.2 修改通用建模过程以考虑<br />非平稳序列 117<br />7.3 预测一个非平稳时间序列 119<br />7.4 下一步 125<br />7.5 练习 126<br />第8章 考虑季节性 127<br />8.1 研究SARIMA(p,d,q)(P,D,Q)m<br />模型 128<br />8.2 识别时间序列的季节性模式 129<br />8.3 预测航空公司每月乘客数量 133<br />8.3.1 使用ARIMA(p,d,q)模型进行<br />预测 135<br />8.3.2 使用SARIMA(p,d,q)(P,D,Q)m<br />模型进行预测 139<br />8.3.3 比较每种预测方法的性能 142<br />8.4 下一步 144<br />8.5 练习 145<br />第9章 向模型添加外生变量 146<br />9.1 研究SARIMAX模型 147<br />9.1.1 探讨美国宏观经济数据集的<br />外生变量 148<br />9.1.2 使用SARIMAX的注意<br />事项 150<br />9.2 使用SARIMAX模型预测实际<br />GDP 151<br />9.3 下一步 158<br />9.4 练习 159<br />第10章 预测多变量时间序列 160<br />10.1 研究VAR模型 161<br />10.2 设计VAR(p)建模过程 163<br />10.3 预测实际可支配收入和实际<br />消费 164<br />10.4 下一步 174<br />10.5 练习 174<br />10.5.1 使用VARMA模型预测realdpi和realcons 174<br />10.5.2 使用VARMAX模型预测realdpi和realcons 175<br />第11章 顶点项目:预测澳大利亚<br />抗糖尿病药物处方的数量 176<br />11.1 导入所需的库并加载数据 177<br />11.2 可视化序列及其分量 178<br />11.3 对数据进行建模 180<br />11.3.1 进行模型选择 181<br />11.3.2 进行残差分析 183<br />11.4 预测和评估模型的性能 184<br />11.5 下一步 187<br />第三部分 使用深度学习进行大规模预测<br />第12章 将深度学习引入时间序列<br />预测 191<br />12.1 何时使用深度学习进行时间<br />序列预测 191<br />12.2 探索不同类型的深度学习<br />模型 192<br />12.3 准备应用深度学习进行预测 194<br />12.3.1 进行数据探索 195<br />12.3.2 特征工程和数据拆分 198<br />12.4 下一步 202<br />12.5 练习 202<br />第13章 数据窗口和创建深度学习<br />基线 204<br />13.1 创建数据窗口 204<br />13.1.1 探索如何训练深度学习<br />模型用于时间序列预测 205<br />13.1.2 实现数据窗口类 208<br />13.2 应用基线模型 215<br />13.2.1 单步基线模型 215<br />13.2.2 多步基线模型 217<br />13.2.3 多输出基线模型 220<br />13.3 下一步 223<br />13.4 练习 223<br />第14章 初步研究深度学习 225<br />14.1 实现线性模型 225<br />14.1.1 实现单步线性模型 226<br />14.1.2 实现多步线性模型 228<br />14.1.3 实现多输出线性模型 229<br />14.2 实现深度神经网络 230<br />14.2.1 实现单步深度神经网络<br />模型 232<br />14.2.2 实现多步深度神经网络<br />模型 234<br />14.2.3 实现多输出深度神经网络<br />模型 236<br />14.3 下一步 237<br />14.4 练习 237<br />第15章 使用LSTM记住过去 239<br />15.1 探索递归神经网络 239<br />15.2 研究LSTM架构 241<br />15.2.1 遗忘门 242<br />15.2.2 输入门 243<br />15.2.3 输出门 244<br />15.3 实现LSTM架构 245<br />15.3.1 实现单步LSTM模型 245<br />15.3.2 实现多步LSTM模型 247<br />15.3.3 实现多输出LSTM模型 249<br />15.4 下一步 252<br />15.5 练习 252<br />第16章 使用CNN过滤时间序列 254<br />16.1 研究卷积神经网络 254<br />16.2 实现CNN 257<br />16.2.1 实现单步CNN模型 258<br />16.2.2 实现多步CNN模型 261<br />16.2.3 实现多输出CNN模型 263<br />16.3 下一步 264<br />16.4 练习 265<br />第17章 使用预测做出更多预测 267<br />17.1 研究ARLSTM架构 267<br />17.2 构建自回归LSTM模型 269<br />17.3 下一步 273<br />17.4 练习 273<br />第18章 顶点项目:预测一个家庭的<br />用电量 274<br />18.1 了解顶点项目 275<br />18.2 数据整理和预处理 277<br />18.2.1 处理缺失数据 278<br />18.2.2 数据转换 279<br />18.2.3 数据重采样 279<br />18.3 特征工程 281<br />18.3.1 删除无用的列 282<br />18.3.2 确定季节性周期 282<br />18.3.3 拆分和缩放数据 285<br />18.4 使用深度学习进行建模的准备<br />工作 285<br />18.4.1 初始配置 285<br />18.4.2 定义DataWindow类 286<br />18.4.3 训练模型的效用函数 289<br />18.5 使用深度学习进行建模 289<br />18.5.1 基线模型 290<br />18.5.2 线性模型 292<br />18.5.3 深度神经网络 293<br />18.5.4 LSTM模型 294<br />18.5.5 卷积神经网络 295<br />18.5.6 组合CNN与LSTM 296<br />18.5.7 自回归LSTM模型 297<br />18.5.8 选择很好模型 299<br />18.6 下一步 300<br />第四部分 大规模自动化预测<br />第19章 使用Prophet自动化时间<br />序列预测 303<br />19.1 自动化预测库概述 303<br />19.2 探索Prophet 305<br />19.3 使用Prophet进行基本预测 306<br />19.4 探索Prophet的高级功能 310<br />19.4.1 可视化能力 311<br />19.4.2 交叉验证和性能指标 314<br />19.4.3 超参数调优 317<br />19.5 使用Prophet实现鲁棒的预测<br />过程 319<br />19.5.1 预测项目:预测“chocolate”在Google上的受欢迎<br />程度 320<br />19.5.2 实验:SARIMA能做得<br />更好吗 326<br />19.6 下一步 329<br />19.7 练习 329<br />19.7.1 预测航空乘客人数 329<br />19.7.2 预测抗糖尿病药物处方<br />数量 330<br />19.7.3 预测某个关键字在<br />Google Trends上的<br />受欢迎程度 330<br />第20章 顶点项目:预测加拿大<br />牛排的月平均零售价格 331<br />20.1 了解顶点项目 331<br />20.2 数据预处理与可视化 332<br />20.3 使用Prophet进行建模 334<br />20.4 可选:开发一个SARIMA<br />模型 338<br />20.5 下一步 342<br />第21章 超越自我 343<br />21.1 总结所学 343<br />21.1.1 统计学预测方法 344<br />21.1.2 深度学习预测方法 344<br />21.1.3 自动化预测过程 345<br />21.2 如果预测不起作用怎么办 345<br />21.3 时间序列数据的其他应用 346<br />21.4 保持练习 347<br />附录 安装说明 349 |