本書與讀者一同探討和思考數(shù)據(jù)分析的基本概念、需求、方案等問題,并以 KNIME 為工具,展示 數(shù)據(jù)分析的具體流程。 本書對 KNIME 中的眾多節(jié)點進行了介紹,對各節(jié)點的難度和重要性進行了標記,以便新手更快地 學習,對節(jié)點的覆蓋性說明和一些高級內容,會讓讀者更深入地了解和使用KNIME。 對所有日常有數(shù)據(jù)分析需求的讀者來說,本書能幫助其輕松應對大部分常見的數(shù)據(jù)分析問題,是一本 不可多得的 KNIME 使用參考書。 按照當今的流行術語來說,KNIME 是一款通用型的低代碼(low code)數(shù)據(jù)分析軟件,也就是 說,它的主要操作方式通過"拖拉曳”就能完成。 本書適合所有日常有數(shù)據(jù)分析需求的讀者,能幫助其輕松應對大部分常見的數(shù)據(jù)分析問題。
雒玉璽,即“指北君”,擁有十多年數(shù)據(jù)分析經(jīng)驗的專家,專注于最新的數(shù)據(jù)分析、機器學習和人工智能技術,在金融、制造、零售、醫(yī)療保健、生命科學等行業(yè)有豐富的實踐經(jīng)驗。全面掌握數(shù)據(jù)分析相關技術,具有高效的分析能力,提供數(shù)據(jù)方面的咨詢和培訓服務。此外,獨立運營公眾號 "數(shù)據(jù)分析指北",歡迎關注互動。
第1章 數(shù)據(jù)分析方法論1
1.1 基本要求與基礎概念1
1.1.1 目標讀者1
1.1.2 楔子2
1.1.3 厘清誰是數(shù)據(jù)的所有者2
1.1.4 成為科學家還是工程師3
1.2 方法論4
1.2.1 你的問題是什么4
1.2.2 問題的解空間5
1.2.3 科學方法6
1.2.4 “然后呢”7
1.2.5 CRISP-DM數(shù)據(jù)挖掘的跨行業(yè)標準流程9
1.3 后續(xù)內容10
第2章 KNIME使用基礎12
2.1 權衡數(shù)據(jù)分析的需求與解決方案12
2.1.1 制定實施方案12
2.1.2 案例:一次關于工具選型的聊天15
2.2 KNIME簡介、生態(tài)圈和資源18
2.2.1 KNIME簡介18
2.2.2 當我們提到KNIME時,具體是指什么20
2.2.3 KNIME 的相關資源21
2.3 安裝KNIME及其擴展22
2.3.1 安裝KNIME分析平臺22
2.3.2 啟動KNIME24
2.3.3 安裝KNIME擴展25
2.3.4 卸載KNIME擴展26
2.4 KNIME的使用26
2.4.1 關于KNIME界面26
2.4.2 KNIME使用簡介29
2.4.3 導入和導出現(xiàn)有工作流30
2.4.4 例子服務器及Hub的使用31
2.5 遇到問題怎么辦34
第3章 KNIME數(shù)據(jù)分析基礎36
3.1 數(shù)據(jù)來源及輪廓36
3.1.1 了解原始數(shù)據(jù)來源36
3.1.2 了解輪廓,進行探索性分析36
3.1.3 一個好例子37
3.1.4 房價例子38
3.2 計算機如何處理表格數(shù)據(jù)39
3.2.1 基礎數(shù)據(jù)操作39
3.2.2 展示示例數(shù)據(jù)39
3.2.3 具體的小問題39
3.3 基礎操作之讀取數(shù)據(jù)源41
3.3.1 讀取文件41
3.3.2 讀取數(shù)據(jù)庫43
3.3.3 導入之前的數(shù)據(jù)43
3.4 基礎操作之挑選(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 基礎操作之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é)點基礎59
第4章 KNIME基礎節(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é)點的補充說明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的相應節(jié)點84
4.4 Web相關節(jié)點85
4.5 NoSQL相關節(jié)點85
4.6 網(wǎng)絡數(shù)據(jù)訪問86
4.6.1 網(wǎng)絡數(shù)據(jù)簡要說明86
4.6.2 使用GET/POST Request 節(jié)點89
4.6.3 其他91
第5章 KNIME基礎節(jié)點——轉換類型92
5.1 Column(列)處理節(jié)點集合93
5.1.1 Binning(分桶)目錄下的節(jié)點93
5.1.2 Convert & Replace(轉換 & 替換)目錄下的節(jié)點96
5.1.3 Filter(過濾)目錄下的節(jié)點101
5.1.4 Split & Combine(分割與組合)目錄下的節(jié)點101
5.1.5 Transform(轉換)目錄下的節(jié)點103
5.1.6 其他的列處理節(jié)點106
5.2 Row(行)處理節(jié)點集合107
5.2.1 Filter(過濾)目錄下的節(jié)點107
5.2.2 Transform(轉換)目錄下的節(jié)點110
5.2.3 GroupBy(分組聚合)節(jié)點112
5.2.4 Pivoting(轉軸或透視)節(jié)點116
5.2.5 其他行處理節(jié)點119
5.3 Table(表)處理節(jié)點集合121
5.4 PMML節(jié)點集合121
5.5 時間數(shù)據(jù)類型相關操作124
第6章 KNIME基礎節(jié)點——分析和數(shù)據(jù)挖掘類型128
6.1 機器學習簡述128
6.1.1 監(jiān)督學習和非監(jiān)督學習128
6.1.2 基本概念和約定129
6.1.3 模型選擇、超參優(yōu)化及錯誤分析132
6.2 Analytics節(jié)點集合133
6.2.1 學習器(Learner)和預測器(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)練習137
6.3.1 泰坦尼克號137
6.3.2 數(shù)據(jù)探索138
6.3.3 對原始數(shù)據(jù)進行粗略觀察138
6.3.4 進一步觀察數(shù)據(jù)143
6.4 簡單的機器學習練習——使用KNIME中的決策樹算法147
第7章 進階話題——流變量與控制循環(huán)結構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)結構164
7.2.1 兩種Loop End(循環(huán)結束)節(jié)點166
7.2.2 遞歸循環(huán)168
7.2.3 循環(huán)的調試170
7.2.4 和流變量有關的循環(huán)171
7.2.5 其他循環(huán)172
7.3 分支(Switches)結構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結構179
7.4.2 舉例:循環(huán)中的Try ... Catch結構183
7.4.3 其他184
第8章 進階話題——數(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)為例介紹可視化相關節(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相關節(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相關節(jié)點221
8.5.1 Python環(huán)境配置222
8.5.2 KNIME中的Python226
8.5.3 Python相關節(jié)點介紹229
8.5.4 與Jupyter交互231
8.5.5 Conda的常用命令234
第9章 高級話題235
9.1 可復現(xiàn)性與測試235
9.2 深度學習介紹238
9.2.1 基于Keras的深度學習239
9.2.2 基于TensorFlow 2的深度學習242
9.2.3 使用現(xiàn)有模型進行預測244
9.2.4 使用深度學習的其他方式246
9.3 時間序列分析介紹247
9.3.1 想要預測什么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 自相關圖(Auto Correlation Plot)與偏自相關圖(Partial autocorrelation
function Plot)255
9.3.9 時間序列的組成257
9.3.10 時間序列的預處理258
9.3.11 趨勢(Trend)成分260
9.3.12 季節(jié)性(Seasonal)成分261
9.3.13 周期性(Cyclic)成分263
9.3.14 經(jīng)典的統(tǒng)計學方法263
9.4 擴展開發(fā)介紹264
9.5 (機器學習的)集成部署(Integrated Deployment)271
9.5.1 概述271
9.5.2 使用舉例272
9.6 KNIME Server、Executor與Edge簡介276
9.6.1 架構簡介276
9.6.2 功能簡介278