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