本書從實用的角度出發(fā),采用理論與實踐相結(jié)合的方式,介紹樣本數(shù)據(jù)處理的基礎(chǔ)知識,力求培養(yǎng)讀者使用Python語言及Kettle軟件進行數(shù)據(jù)處理的能力。全書內(nèi)容分別為數(shù)據(jù)預(yù)處理概述、Kettle工具的初步使用、數(shù)據(jù)的導(dǎo)入與導(dǎo)出、數(shù)據(jù)清洗、數(shù)據(jù)標(biāo)注、Kettle作業(yè)設(shè)計、基于Kettle構(gòu)建數(shù)據(jù)倉庫、基于Python的數(shù)據(jù)導(dǎo)入與導(dǎo)出、基于Python的數(shù)據(jù)整理。 本書作為人工智能學(xué)科相關(guān)的樣本數(shù)據(jù)處理技術(shù)的入門教材,目的不在于是覆蓋樣本數(shù)據(jù)處理技術(shù)的所有知識點,而是介紹樣本數(shù)據(jù)處理的主要應(yīng)用,使讀者了解樣本數(shù)據(jù)處理的基本構(gòu)成,以及如何應(yīng)對不同數(shù)據(jù)類型的數(shù)據(jù)預(yù)處理工作。為了增強實踐效果,本書中引入了多個基礎(chǔ)技術(shù)案例及綜合實踐案例,以幫助讀者了解樣本數(shù)據(jù)處理涉及的基本技術(shù)的知識和技能。 本書可作為高等院校數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)、計算機、信息管理等相關(guān)專業(yè)課程的教材,也可供對樣本數(shù)據(jù)處理技術(shù)感興趣的讀者閱讀。
許桂秋,運營總監(jiān)。2000年9月—2004年6月,廈門大學(xué),計算機科學(xué)與技術(shù)專業(yè)學(xué)習(xí),獲工學(xué)學(xué)士;2007年8月—2011年4月,中國石油天然氣股份有限公司,項目經(jīng)理,工程師;2011年6月—2016年7月,曙光信息產(chǎn)業(yè)股份有限公司,項目經(jīng)理,工程師;2016年7月—至今,中科瑞翼(北京)教育科技有限公司,運營總監(jiān)。主要著作出版情況:《大數(shù)據(jù)導(dǎo)論》、《Python編程基礎(chǔ)與應(yīng)用》、《NoSQL數(shù)據(jù)庫原理與應(yīng)用》、《數(shù)據(jù)挖掘與機器學(xué)習(xí)》等9本系列教材,浙江科技出版社,2019年。
第1章 數(shù)據(jù)預(yù)處理概述 1
1.1 數(shù)據(jù)預(yù)處理的背景與目的 1
1.1.1 數(shù)據(jù)預(yù)處理的背景:數(shù)據(jù)質(zhì)量 1
1.1.2 數(shù)據(jù)預(yù)處理的目的 3
1.2 數(shù)據(jù)預(yù)處理的流程 3
1.2.1 數(shù)據(jù)清洗 3
1.2.2 數(shù)據(jù)集成 5
1.2.3 數(shù)據(jù)變換 6
1.2.4 數(shù)據(jù)歸約 9
1.2.5 數(shù)據(jù)預(yù)處理的注意事項 14
1.3 數(shù)據(jù)預(yù)處理的工具 14
本章習(xí)題 15
第2章 Kettle工具的初步使用 16
2.1 Kettle的安裝 16
2.1.1 Java的安裝 16
2.1.2 Kettle的下載安裝與Spoon的啟動 20
2.2 Kettle的使用 21
2.2.1 轉(zhuǎn)換的基本概念 21
2.2.2 第一個轉(zhuǎn)換案例 23
本章習(xí)題 42
第3章 數(shù)據(jù)的導(dǎo)入與導(dǎo)出 43
3.1 基于文件的數(shù)據(jù)導(dǎo)入與導(dǎo)出 43
3.1.1 文本文件的導(dǎo)入與導(dǎo)出 43
3.1.2 文本文件的導(dǎo)入與導(dǎo)出案例 45
3.1.3 Excel文件的導(dǎo)入與導(dǎo)出 51
3.1.4 Excel文件的導(dǎo)入與導(dǎo)出案例 51
3.1.5 XML文件的導(dǎo)入與導(dǎo)出 59
3.1.6 XML文件的導(dǎo)入與導(dǎo)出案例 59
3.1.7 JSON文件的導(dǎo)入與導(dǎo)出 64
3.1.8 JSON文件的導(dǎo)入與導(dǎo)出案例 65
3.2 基于數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入與導(dǎo)出 69
3.2.1 關(guān)系數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入與導(dǎo)出 69
3.2.2 MySQL數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入與導(dǎo)出案例 71
3.3 基于Web的數(shù)據(jù)導(dǎo)入與導(dǎo)出 78
3.3.1 HTML數(shù)據(jù)的導(dǎo)入與導(dǎo)出 78
3.3.2 HTML數(shù)據(jù)的導(dǎo)入與導(dǎo)出案例 79
3.3.3 基于HTTP GET請求的導(dǎo)入與導(dǎo)出 83
3.3.4 基于HTTP GET請求的導(dǎo)入與導(dǎo)出案例 83
3.4 基于CDC變更數(shù)據(jù)的導(dǎo)入與導(dǎo)出 86
3.4.1 基于源數(shù)據(jù)的CDC 86
3.4.2 基于源數(shù)據(jù)的CDC案例 87
3.4.3 基于觸發(fā)器的CDC 98
3.4.4 基于觸發(fā)器的CDC案例 99
3.4.5 基于快照的CDC 109
3.4.6 基于快照的CDC案例 109
3.4.7 基于日志的CDC 113
3.4.8 基于日志的CDC案例 113
本章習(xí)題 116
第4章 數(shù)據(jù)清洗 117
4.1 數(shù)據(jù)清洗概述 117
4.1.1 Kettle常用的數(shù)據(jù)清洗步驟 117
4.1.2 字符串清理 119
4.1.3 字段清理 123
4.1.4 使用參照表清理數(shù)據(jù) 130
4.1.5 數(shù)據(jù)校驗 136
4.2 數(shù)據(jù)排重 141
4.2.1 如何識別重復(fù)數(shù)據(jù) 141
4.2.2 去除完全重復(fù)數(shù)據(jù) 142
4.2.3 去除不完全重復(fù)數(shù)據(jù) 144
4.3 使用腳本組件進行數(shù)據(jù)清洗 147
4.3.1 使用JavaScript代碼組件清理數(shù)據(jù) 147
4.3.2 使用正則表達式組件清理數(shù)據(jù) 149
4.3.3 使用其他腳本組件清理數(shù)據(jù) 152
本章習(xí)題 156
第5章 數(shù)據(jù)標(biāo)注 157
5.1 數(shù)據(jù)標(biāo)注簡介 157
5.1.1 數(shù)據(jù)標(biāo)注是什么 157
5.1.2 數(shù)據(jù)標(biāo)注分類簡介 158
5.1.3 數(shù)據(jù)標(biāo)注流程簡介 159
5.2 數(shù)據(jù)標(biāo)注分類 160
5.2.1 圖像標(biāo)注 161
5.2.2 文本標(biāo)注 164
5.2.3 語音標(biāo)注 166
5.3 數(shù)據(jù)標(biāo)注質(zhì)量檢驗 167
5.3.1 數(shù)據(jù)標(biāo)注質(zhì)量的影響 167
5.3.2 數(shù)據(jù)標(biāo)注的質(zhì)量標(biāo)準(zhǔn) 169
5.3.3 數(shù)據(jù)標(biāo)注質(zhì)量檢驗方法 172
5.4 圖像數(shù)據(jù)標(biāo)注實戰(zhàn) 175
5.4.1 車輛車牌標(biāo)注 175
5.4.2 遙感影像標(biāo)注 180
5.4.3 醫(yī)療影像標(biāo)注 184
5.4.4 行人數(shù)據(jù)標(biāo)注 188
5.4.5 基于行人標(biāo)注數(shù)據(jù)集的行人檢測 192
5.5 文本標(biāo)注實戰(zhàn) 198
本章習(xí)題 207
第6章 Kettle作業(yè)設(shè)計 208
6.1 作業(yè)的概念及組成 209
6.1.1 作業(yè)項 209
6.1.2 跳 210
6.1.3 注釋 210
6.2 作業(yè)的執(zhí)行方式 210
6.2.1 回溯 210
6.2.2 多路徑和回溯 211
6.2.3 并行執(zhí)行 211
6.3 作業(yè)的創(chuàng)建及常用作業(yè)項 212
6.3.1 創(chuàng)建作業(yè) 213
6.3.2 “START”作業(yè)項 213
6.3.3 “作業(yè)”作業(yè)項 213
6.3.4 “轉(zhuǎn)換”作業(yè)項 215
6.4 變量 216
6.4.1 定義變量 216
6.4.2 使用變量 218
6.5 監(jiān)控 218
6.5.1 日志 219
6.5.2 郵件通知 220
6.6 命令行啟動 221
6.7 作業(yè)實驗 223
本章習(xí)題 252
第7章 基于Kettle構(gòu)建數(shù)據(jù)倉庫 253
7.1 數(shù)據(jù)倉庫的介紹 253
7.1.1 數(shù)據(jù)倉庫的起因 253
7.1.2 數(shù)據(jù)倉庫的發(fā)展 254
7.1.3 數(shù)據(jù)倉庫的定義 255
7.1.4 數(shù)據(jù)倉庫的特點 255
7.1.5 數(shù)據(jù)倉庫的結(jié)構(gòu) 255
7.1.6 數(shù)據(jù)倉庫建模 256
7.1.7 數(shù)據(jù)倉庫與ETL的關(guān)系 257
7.2 構(gòu)建維度表 258
7.2.1 管理各種鍵 258
7.2.2 維度表的加載 262
7.2.3 緩慢變化維度 263
7.3 構(gòu)建事實表 268
7.3.1 批量加載 268
7.3.2 查找維度 271
7.3.3 事實表的處理 271
本章習(xí)題 280
第8章 基于Python的數(shù)據(jù)導(dǎo)入與導(dǎo)出 281
8.1 Pandas 281
8.1.1 Series 282
8.1.2 DataFrame 284
8.2 文本文件的導(dǎo)入與導(dǎo)出 286
8.2.1 導(dǎo)入CSV文件 286
8.2.2 導(dǎo)出CSV文件 290
8.2.3 JSON格式數(shù)據(jù)的導(dǎo)入與導(dǎo)出 291
8.3 Excel文件的導(dǎo)入與導(dǎo)出 292
8.4 數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出 292
8.4.1 關(guān)系數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出 293
8.4.2 非關(guān)系數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出 294
本章習(xí)題 297
第9章 基于Python的數(shù)據(jù)整理 298
9.1 合并多個數(shù)據(jù)集 298
9.1.1 使用鍵進行DataFrame合并 298
9.1.2 使用index進行DataFrame合并 302
9.1.3 沿著橫軸或縱軸串接 303
9.2 數(shù)據(jù)重塑 305
9.2.1 多級索引數(shù)據(jù)的重塑 305
9.2.2 應(yīng)用pivot方法重塑數(shù)據(jù) 307
9.3 數(shù)據(jù)轉(zhuǎn)換 310
9.3.1 移除重復(fù)數(shù)據(jù) 310
9.3.2 利用函數(shù)或映射進行數(shù)據(jù)轉(zhuǎn)換 312
9.3.3 值轉(zhuǎn)換 312
9.3.4 重命名軸索引 313
9.3.5 離散化和面元劃分 314
9.3.6 檢測或過濾異常值 317
9.3.7 排列和隨機采樣 318
9.3.8 計算指標(biāo)/啞變量 319
本章習(xí)題 322