本書與讀者一同探討和思考數(shù)據(jù)分析的基本概念、需求、方案等問題,并以 KNIME 為工具,展示 數(shù)據(jù)分析的具體流程。 本書對 KNIME 中的眾多節(jié)點進(jìn)行了介紹,對各節(jié)點的難度和重要性進(jìn)行了標(biāo)記,以便新手更快地 學(xué)習(xí),對節(jié)點的覆蓋性說明和一些高級內(nèi)容,會讓讀者更深入地了解和使用KNIME。 對所有日常有數(shù)據(jù)分析需求的讀者來說,本書能幫助其輕松應(yīng)對大部分常見的數(shù)據(jù)分析問題,是一本 不可多得的 KNIME 使用參考書。 按照當(dāng)今的流行術(shù)語來說,KNIME 是一款通用型的低代碼(low code)數(shù)據(jù)分析軟件,也就是 說,它的主要操作方式通過"拖拉曳”就能完成。 本書適合所有日常有數(shù)據(jù)分析需求的讀者,能幫助其輕松應(yīng)對大部分常見的數(shù)據(jù)分析問題。
雒玉璽,即“指北君”,擁有十多年數(shù)據(jù)分析經(jīng)驗的專家,專注于最新的數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和人工智能技術(shù),在金融、制造、零售、醫(yī)療保健、生命科學(xué)等行業(yè)有豐富的實踐經(jīng)驗。全面掌握數(shù)據(jù)分析相關(guān)技術(shù),具有高效的分析能力,提供數(shù)據(jù)方面的咨詢和培訓(xùn)服務(wù)。此外,獨立運營公眾號 "數(shù)據(jù)分析指北",歡迎關(guān)注互動。
第1章 數(shù)據(jù)分析方法論1
1.1 基本要求與基礎(chǔ)概念1
1.1.1 目標(biāo)讀者1
1.1.2 楔子2
1.1.3 厘清誰是數(shù)據(jù)的所有者2
1.1.4 成為科學(xué)家還是工程師3
1.2 方法論4
1.2.1 你的問題是什么4
1.2.2 問題的解空間5
1.2.3 科學(xué)方法6
1.2.4 “然后呢”7
1.2.5 CRISP-DM數(shù)據(jù)挖掘的跨行業(yè)標(biāo)準(zhǔn)流程9
1.3 后續(xù)內(nèi)容10
第2章 KNIME使用基礎(chǔ)12
2.1 權(quán)衡數(shù)據(jù)分析的需求與解決方案12
2.1.1 制定實施方案12
2.1.2 案例:一次關(guān)于工具選型的聊天15
2.2 KNIME簡介、生態(tài)圈和資源18
2.2.1 KNIME簡介18
2.2.2 當(dāng)我們提到KNIME時,具體是指什么20
2.2.3 KNIME 的相關(guān)資源21
2.3 安裝KNIME及其擴(kuò)展22
2.3.1 安裝KNIME分析平臺22
2.3.2 啟動KNIME24
2.3.3 安裝KNIME擴(kuò)展25
2.3.4 卸載KNIME擴(kuò)展26
2.4 KNIME的使用26
2.4.1 關(guān)于KNIME界面26
2.4.2 KNIME使用簡介29
2.4.3 導(dǎo)入和導(dǎo)出現(xiàn)有工作流30
2.4.4 例子服務(wù)器及Hub的使用31
2.5 遇到問題怎么辦34
第3章 KNIME數(shù)據(jù)分析基礎(chǔ)36
3.1 數(shù)據(jù)來源及輪廓36
3.1.1 了解原始數(shù)據(jù)來源36
3.1.2 了解輪廓,進(jìn)行探索性分析36
3.1.3 一個好例子37
3.1.4 房價例子38
3.2 計算機(jī)如何處理表格數(shù)據(jù)39
3.2.1 基礎(chǔ)數(shù)據(jù)操作39
3.2.2 展示示例數(shù)據(jù)39
3.2.3 具體的小問題39
3.3 基礎(chǔ)操作之讀取數(shù)據(jù)源41
3.3.1 讀取文件41
3.3.2 讀取數(shù)據(jù)庫43
3.3.3 導(dǎo)入之前的數(shù)據(jù)43
3.4 基礎(chǔ)操作之挑選(select)操作44
3.4.1 了解完備概念44
3.4.2 你會幾種編程語言45
3.4.3 回顧之前的問題45
3.4.4 SQL中的挑選操作46
3.4.5 KNIME中的挑選操作47
3.5 基礎(chǔ)操作之CASE、group by和join49
3.5.1 條件操作、缺失值和排序50
3.5.2 分組操作——group by51
3.5.3 子查詢——subquery51
3.5.4 連接操作——join52
3.5.5 使用KNIME完成之前的問題52
3.6 了解KNIME中的重要概念56
3.6.1 了解路徑56
3.6.2 了解節(jié)點基礎(chǔ)59
第4章 KNIME基礎(chǔ)節(jié)點——數(shù)據(jù)訪問類型64
4.1 IO節(jié)點集合65
4.1.1 Read(讀)目錄下的節(jié)點66
4.1.2 File Folder Utility(文件、文件夾工具)目錄下的節(jié)點68
4.1.3 Other(其他)目錄下的節(jié)點69
4.1.4 文件處理節(jié)點的補(bǔ)充說明70
4.2 DB節(jié)點集合70
4.2.1 Connection(連接)目錄下的節(jié)點71
4.2.2 獲取數(shù)據(jù)的兩種模式73
4.2.3 Query(查詢)目錄下的節(jié)點75
4.2.4 Read/Write(讀/寫)目錄下的節(jié)點77
4.2.5 Utility(工具)目錄下的節(jié)點78
4.3 JSON、XML類型78
4.3.1 JSON格式介紹與解析79
4.3.2 XML格式介紹與解析83
4.3.3 JSON與XML的相應(yīng)節(jié)點84
4.4 Web相關(guān)節(jié)點85
4.5 NoSQL相關(guān)節(jié)點85
4.6 網(wǎng)絡(luò)數(shù)據(jù)訪問86
4.6.1 網(wǎng)絡(luò)數(shù)據(jù)簡要說明86
4.6.2 使用GET/POST Request 節(jié)點89
4.6.3 其他91
第5章 KNIME基礎(chǔ)節(jié)點——轉(zhuǎn)換類型92
5.1 Column(列)處理節(jié)點集合93
5.1.1 Binning(分桶)目錄下的節(jié)點93
5.1.2 Convert & Replace(轉(zhuǎn)換 & 替換)目錄下的節(jié)點96
5.1.3 Filter(過濾)目錄下的節(jié)點101
5.1.4 Split & Combine(分割與組合)目錄下的節(jié)點101
5.1.5 Transform(轉(zhuǎn)換)目錄下的節(jié)點103
5.1.6 其他的列處理節(jié)點106
5.2 Row(行)處理節(jié)點集合107
5.2.1 Filter(過濾)目錄下的節(jié)點107
5.2.2 Transform(轉(zhuǎn)換)目錄下的節(jié)點110
5.2.3 GroupBy(分組聚合)節(jié)點112
5.2.4 Pivoting(轉(zhuǎn)軸或透視)節(jié)點116
5.2.5 其他行處理節(jié)點119
5.3 Table(表)處理節(jié)點集合121
5.4 PMML節(jié)點集合121
5.5 時間數(shù)據(jù)類型相關(guān)操作124
第6章 KNIME基礎(chǔ)節(jié)點——分析和數(shù)據(jù)挖掘類型128
6.1 機(jī)器學(xué)習(xí)簡述128
6.1.1 監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)128
6.1.2 基本概念和約定129
6.1.3 模型選擇、超參優(yōu)化及錯誤分析132
6.2 Analytics節(jié)點集合133
6.2.1 學(xué)習(xí)器(Learner)和預(yù)測器(Predictor)134
6.2.2 Feature Selection(特征選擇)節(jié)點135
6.2.3 Scoring(記分)目錄下的節(jié)點136
6.2.4 Statistics(統(tǒng)計)類節(jié)點136
6.2.5 Distance Calculation(距離計算)類節(jié)點137
6.3 探索性數(shù)據(jù)分析(EDA)練習(xí)137
6.3.1 泰坦尼克號137
6.3.2 數(shù)據(jù)探索138
6.3.3 對原始數(shù)據(jù)進(jìn)行粗略觀察138
6.3.4 進(jìn)一步觀察數(shù)據(jù)143
6.4 簡單的機(jī)器學(xué)習(xí)練習(xí)——使用KNIME中的決策樹算法147
第7章 進(jìn)階話題——流變量與控制循環(huán)結(jié)構(gòu)152
7.1 流變量從入門到精通152
7.1.1 了解流變量152
7.1.2 生成流變量153
7.1.3 使用流變量156
7.1.4 流變量的操作160
7.1.5 流變量的特別使用方式164
7.2 循環(huán)(Loop)結(jié)構(gòu)164
7.2.1 兩種Loop End(循環(huán)結(jié)束)節(jié)點166
7.2.2 遞歸循環(huán)168
7.2.3 循環(huán)的調(diào)試170
7.2.4 和流變量有關(guān)的循環(huán)171
7.2.5 其他循環(huán)172
7.3 分支(Switches)結(jié)構(gòu)175
7.3.1 IF Switch節(jié)點176
7.3.2 Java IF(Table)節(jié)點177
7.3.3 CASE Switch類節(jié)點177
7.3.4 Empty Table Switch(空表切換)節(jié)點178
7.3.5 其他說明179
7.4 錯誤處理179
7.4.1 Try…Catch結(jié)構(gòu)179
7.4.2 舉例:循環(huán)中的Try ... Catch結(jié)構(gòu)183
7.4.3 其他184
第8章 進(jìn)階話題——數(shù)據(jù)可視化、模塊化與編程節(jié)點185
8.1 數(shù)據(jù)可視化185
8.1.1 數(shù)據(jù)可視化簡介185
8.1.2 KNIME中的可視化節(jié)點簡介188
8.1.3 以折線圖(Line Plot)為例介紹可視化相關(guān)節(jié)點189
8.1.4 其他可視化圖表195
8.1.5 通用可視化節(jié)點——Generic JavaScript View195
8.2 模塊化197
8.2.1 KNIME 模塊化簡史198
8.2.2 元節(jié)點(Metanode)199
8.2.3 組件(Component)201
8.2.4 其他建議207
8.3 生成報告208
8.4 Java相關(guān)節(jié)點213
8.4.1 Java Snippet(simple)節(jié)點213
8.4.2 Java Snippet Row Filter(Java行過濾器)節(jié)點216
8.4.3 Java Snippet節(jié)點217
8.5 Python相關(guān)節(jié)點221
8.5.1 Python環(huán)境配置222
8.5.2 KNIME中的Python226
8.5.3 Python相關(guān)節(jié)點介紹229
8.5.4 與Jupyter交互231
8.5.5 Conda的常用命令234
第9章 高級話題235
9.1 可復(fù)現(xiàn)性與測試235
9.2 深度學(xué)習(xí)介紹238
9.2.1 基于Keras的深度學(xué)習(xí)239
9.2.2 基于TensorFlow 2的深度學(xué)習(xí)242
9.2.3 使用現(xiàn)有模型進(jìn)行預(yù)測244
9.2.4 使用深度學(xué)習(xí)的其他方式246
9.3 時間序列分析介紹247
9.3.1 想要預(yù)測什么247
9.3.2 時間圖(Time Plot)249
9.3.3 季節(jié)圖(Seasonal Plot)249
9.3.4 季節(jié)性子圖(Seasonal Subseries Plot)251
9.3.5 箱形圖(Box Plot)252
9.3.6 散點圖(Scatter Plot)253
9.3.7 滯后圖(Lag Plot)254
9.3.8 自相關(guān)圖(Auto Correlation Plot)與偏自相關(guān)圖(Partial autocorrelation
function Plot)255
9.3.9 時間序列的組成257
9.3.10 時間序列的預(yù)處理258
9.3.11 趨勢(Trend)成分260
9.3.12 季節(jié)性(Seasonal)成分261
9.3.13 周期性(Cyclic)成分263
9.3.14 經(jīng)典的統(tǒng)計學(xué)方法263
9.4 擴(kuò)展開發(fā)介紹264
9.5 (機(jī)器學(xué)習(xí)的)集成部署(Integrated Deployment)271
9.5.1 概述271
9.5.2 使用舉例272
9.6 KNIME Server、Executor與Edge簡介276
9.6.1 架構(gòu)簡介276
9.6.2 功能簡介278