時間序列預(yù)測:基于機器學(xué)習(xí)和Python實現(xiàn)
定 價:89 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:[美]弗朗西斯卡·拉澤里(FrancescaLazzeri)
- 出版時間:2022/1/1
- ISBN:9787111697466
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書基于Python這一處理數(shù)據(jù)功能強大的高級編程語言,在實踐中展示了如何將這些模型應(yīng)用于真實世界的數(shù)據(jù)科學(xué)場景。Python提供了一系列用于時間序列數(shù)據(jù)分析的庫,可以針對不同的預(yù)測解決方案進行通用化的代碼部署。
時間序列數(shù)據(jù)是用于不同行業(yè)(從營銷和金融到教育、醫(yī)療和機器人)未來決策和戰(zhàn)略規(guī)劃的重要信息來源。在過去的幾十年里,基于機器學(xué)習(xí)模型的預(yù)測已經(jīng)成為私營和公共部門常用的工具。
目前,基于機器學(xué)習(xí)模型的時間序列預(yù)測的資源和教程一般分為兩類:針對特定預(yù)測場景的代碼演示,沒有概念上的細節(jié);對預(yù)測背后的理論和數(shù)學(xué)公式的學(xué)術(shù)性解釋。這兩種方法都非常有助于學(xué)習(xí),如果對理解理論假設(shè)背后的數(shù)學(xué)知識有興趣,強烈推薦使用這些資源。
為了解決實際的業(yè)務(wù)問題,有一個系統(tǒng)的、結(jié)構(gòu)良好的預(yù)測框架是必不可少的,數(shù)據(jù)科學(xué)家可以使用它作為參考,并應(yīng)用到現(xiàn)實世界的數(shù)據(jù)科學(xué)場景。這本實踐性的書就是這樣做的,它旨在通過一個實用的模型開發(fā)框架的核心步驟來引導(dǎo)讀者構(gòu)建、訓(xùn)練、評估和部署時間序列預(yù)測模型。
本書的部分(第1章和第2章)專門介紹時間序列的概念,包括時間序列的表示、建模和預(yù)測的基本方面。
第二部分(第3章到第6章)深入研究預(yù)測時間序列數(shù)據(jù)的自回歸和自動方法,如移動平均、差分自回歸移動平均和時間序列數(shù)據(jù)的自動化機器學(xué)習(xí)。然后介紹基于神經(jīng)網(wǎng)絡(luò)的時間序列預(yù)測,重點介紹循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等概念以及不同RNN單元的比較。后,將指導(dǎo)讀者完成在Azure上進行模型部署和操作的重要的步驟。
使用各種開源Python包和Azure,書中通過示例展示了如何將時間序列預(yù)測模型應(yīng)用于真實世界的數(shù)據(jù)科學(xué)場景。有了這些指導(dǎo)方針,讀者應(yīng)該可以在日常工作中處理時間序列數(shù)據(jù),并選擇正確的工具來分析時間序列數(shù)據(jù)。
本書主要內(nèi)容
本書對基于機器學(xué)習(xí)和深度學(xué)習(xí)的時間序列預(yù)測的核心概念、術(shù)語、方法和應(yīng)用進行了全面的介紹,了解這些基礎(chǔ)知識可以設(shè)計更靈活、更成功的時間序列應(yīng)用。
本書包括下列各章:
第1章:時間序列預(yù)測概述 本章專門介紹時間序列的概念,包括時間序列的表示、建模和預(yù)測的基本方面,例如時間序列分析和時間序列預(yù)測的監(jiān)督學(xué)習(xí)。
我們還將了解用于時間序列數(shù)據(jù)的不同Python庫,以及pandas、statsmodels和scikit-learn之類的庫是如何進行數(shù)據(jù)處理、時間序列建模和機器學(xué)習(xí)的。
后,給出有關(guān)設(shè)置用于時間序列預(yù)測的Python環(huán)境的一般建議。
第2章:如何在云上設(shè)計一個端到端的時間序列預(yù)測解決方案 本章旨在通過介紹時間序列預(yù)測模板和現(xiàn)實世界的數(shù)據(jù)科學(xué)場景,從實踐和業(yè)務(wù)角度為時間序列預(yù)測提供端到端的系統(tǒng)指南,本書中將使用它們來展示時間序列的一些概念、步驟和技術(shù)。
第3章:時間序列數(shù)據(jù)準(zhǔn)備 在本章中,將引導(dǎo)讀者完成為預(yù)測模型準(zhǔn)備時間序列數(shù)據(jù)的重要步驟。良好的時間序列數(shù)據(jù)準(zhǔn)備可以產(chǎn)生干凈且經(jīng)過精心整理的數(shù)據(jù),有助于進行更實用、更準(zhǔn)確的預(yù)測。
Python是一種在處理數(shù)據(jù)方面功能非常強大的編程語言,它提供了一系列用于處理時間序列數(shù)據(jù)的庫,并且對時間序列分析提供了出色的支持,這些庫包括SciPy、NumPy、Matplotlib、pandas、statsmodels和scikit-learn等。
本章還將介紹如何對時間序列數(shù)據(jù)執(zhí)行特征工程,要牢記兩個目標(biāo):準(zhǔn)備與機器學(xué)習(xí)算法要求相符的正確輸入數(shù)據(jù)集,并改善機器學(xué)習(xí)模型的性能。
第4章:時間序列預(yù)測的自回歸和自動方法 在本章中,將探索一些用于時間序列預(yù)測的自回歸方法,它們可以用來測試預(yù)測問題。每節(jié)提供一個方法,從一個有效的代碼示例入手,并展示了在哪里可以找到有關(guān)該方法的更多信息。
本章還將介紹用于時間序列預(yù)測的自動化機器學(xué)習(xí),以及如何用這種方法完成模型選擇和超參數(shù)調(diào)整任務(wù)。
第5章:基于神經(jīng)網(wǎng)絡(luò)的時間序列預(yù)測 在本章中,將討論數(shù)據(jù)科學(xué)家在構(gòu)建時間序列預(yù)測解決方案時想要考慮深度學(xué)習(xí)的一些實際原因。然后介紹循環(huán)神經(jīng)網(wǎng)絡(luò),并展示如何將幾種類型的循環(huán)神經(jīng)網(wǎng)絡(luò)用于時間序列預(yù)測。
第6章:時間序列預(yù)測的模型部署 在后一章中,介紹適用于Python的Azure機器學(xué)習(xí)SDK,以構(gòu)建和運行機器學(xué)習(xí)工作流。本章將概述SDK中的一些重要的類,以及如何使用它們在Azure上構(gòu)建、訓(xùn)練和部署機器學(xué)習(xí)模型。
通過部署機器學(xué)習(xí)模型,企業(yè)可以充分利用所構(gòu)建的預(yù)測和智能模型,轉(zhuǎn)變?yōu)閷嶋H的人工智能驅(qū)動型企業(yè)。
后,展示了如何在Azure上構(gòu)建端到端的數(shù)據(jù)管道體系結(jié)構(gòu),并提供不同時間序列預(yù)測解決方案的通用化部署代碼。
配套下載文件
本書提供了使用Python及其技術(shù)庫的大量示例代碼和教程,讀者可以利用它們學(xué)習(xí)如何解決現(xiàn)實中的時間序列問題。
當(dāng)學(xué)習(xí)本書中的示例時,需要用到的項目文件可以從aka.ms/ML4TSFwithPython下載。
每個文件都包含示例Notebooks和數(shù)據(jù),可以使用它們來驗證知識、實踐技術(shù)以及構(gòu)建自己的時間序列預(yù)測解決方案。
譯者序
前言
致謝
關(guān)于作者
關(guān)于技術(shù)審閱人
第1章 時間序列預(yù)測概述1
1.1 時間序列預(yù)測的機器學(xué)習(xí)方法2
1.2 時間序列預(yù)測的監(jiān)督學(xué)習(xí)12
1.3 基于Python的時間序列預(yù)測19
1.4 時間序列預(yù)測的實驗設(shè)置22
1.5 總結(jié)24
第2章 如何在云上設(shè)計一個端到端的時間序列預(yù)測解決方案25
2.1 時間序列預(yù)測模板25
2.1.1 業(yè)務(wù)理解和性能度量27
2.1.2 數(shù)據(jù)攝取30
2.1.3 數(shù)據(jù)探索與理解33
2.1.4 數(shù)據(jù)預(yù)處理和特征工程34
2.1.5 模型構(gòu)建和選擇36
2.2 需求預(yù)測建模技術(shù)概述37
2.2.1 模型評估40
2.2.2 模型部署41
2.2.3 預(yù)測解決方案的接受程度47
2.3 用例:需求預(yù)測47
2.4 總結(jié)51
第3章 時間序列數(shù)據(jù)準(zhǔn)備53
3.1 用于時間序列數(shù)據(jù)的Python庫53
3.1.1 時間序列的通用數(shù)據(jù)準(zhǔn)備工作56
3.1.2 時間戳與周期58
3.1.3 轉(zhuǎn)換為時間戳61
3.1.4 提供格式參數(shù)62
3.1.5 索引63
3.1.6 時間/日期組件69
3.1.7 頻率轉(zhuǎn)換70
3.2 探索與理解時間序列72
3.2.1 如何開始時間序列數(shù)據(jù)分析72
3.2.2 時間序列中缺失值的數(shù)據(jù)清理77
3.2.3 歸一化和標(biāo)準(zhǔn)化時間序列數(shù)據(jù)80
3.3 時間序列特征工程83
3.3.1 日期時間特征84
3.3.2 滯后特征和窗口特征85
3.3.3 滾動窗口統(tǒng)計信息90
3.3.4 擴展窗口統(tǒng)計信息92
3.4 總結(jié)93
第4章 時間序列預(yù)測的自回歸和自動方法94
4.1 自回歸95
4.2 移動平均112
4.3 自回歸移動平均113
4.4 差分自回歸移動平均114
4.5 自動化機器學(xué)習(xí)121
4.6 總結(jié)128
第5章 基于神經(jīng)網(wǎng)絡(luò)的時間序列預(yù)測130
5.1 將深度學(xué)習(xí)用于時間序列預(yù)測的原因130
5.1.1 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)能夠自動從原始數(shù)據(jù)中學(xué)習(xí)和提取特征132
5.1.2 深度學(xué)習(xí)支持多個輸入和輸出133
5.1.3 循環(huán)神經(jīng)網(wǎng)絡(luò)擅長從輸入數(shù)據(jù)中提取模式135
5.2 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的時間序列預(yù)測136
5.2.1 循環(huán)神經(jīng)網(wǎng)絡(luò)137
5.2.2 長短期記憶139
5.2.3 門控循環(huán)單元140
5.2.4 如何為LSTM和GRU準(zhǔn)備時間序列數(shù)據(jù)141
5.3 如何開發(fā)用于時間序列預(yù)測的GRU和LSTM146
5.3.1 Keras147
5.3.2 TensorFlow148
5.3.3 單變量模型149
5.3.4 多變量模型153
5.4 總結(jié)157
第6章 時間序列預(yù)測的模型部署159
6.1 實驗設(shè)置和Python版的Azure機器學(xué)習(xí)SDK介紹 159
6.1.1 Workspace159
6.1.2 Experiment160
6.1.3 Run160
6.1.4 Model161
6.1.5 ComputeTarget、RunConfiguration和ScriptRunConfig162
6.1.6 Image和Webservice163
6.2 機器學(xué)習(xí)模型部署 164
6.3 時間序列預(yù)測的解決方案體系結(jié)構(gòu)部署示例 168
6.3.1 訓(xùn)練并部署ARIMA模型 170
6.3.2 配置工作空間 173
6.3.3 創(chuàng)建實驗 175
6.3.4 創(chuàng)建或連接計算集群 175
6.3.5 上傳數(shù)據(jù)到Azure 176
6.3.6 創(chuàng)建估算器 179
6.3.7 將工作提交到遠程集群180
6.3.8 注冊模型 180
6.3.9 部署模型180
6.3.10 定義輸入腳本和依賴項 182
6.3.11 自動生成模式 182
6.4 總結(jié)187
參考文獻189