本書從實(shí)用的角度出發(fā),采用理論與實(shí)踐相結(jié)合的方式,介紹樣本數(shù)據(jù)處理的基礎(chǔ)知識(shí),力求培養(yǎng)讀者使用Python語(yǔ)言及Kettle軟件進(jìn)行數(shù)據(jù)處理的能力。全書內(nèi)容分別為數(shù)據(jù)預(yù)處理概述、Kettle工具的初步使用、數(shù)據(jù)的導(dǎo)入與導(dǎo)出、數(shù)據(jù)清洗、數(shù)據(jù)標(biāo)注、Kettle作業(yè)設(shè)計(jì)、基于Kettle構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)、基于Python的數(shù)據(jù)導(dǎo)入與導(dǎo)出、基于Python的數(shù)據(jù)整理。 本書作為人工智能學(xué)科相關(guān)的樣本數(shù)據(jù)處理技術(shù)的入門教材,目的不在于是覆蓋樣本數(shù)據(jù)處理技術(shù)的所有知識(shí)點(diǎn),而是介紹樣本數(shù)據(jù)處理的主要應(yīng)用,使讀者了解樣本數(shù)據(jù)處理的基本構(gòu)成,以及如何應(yīng)對(duì)不同數(shù)據(jù)類型的數(shù)據(jù)預(yù)處理工作。為了增強(qiáng)實(shí)踐效果,本書中引入了多個(gè)基礎(chǔ)技術(shù)案例及綜合實(shí)踐案例,以幫助讀者了解樣本數(shù)據(jù)處理涉及的基本技術(shù)的知識(shí)和技能。 本書可作為高等院校數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)、計(jì)算機(jī)、信息管理等相關(guān)專業(yè)課程的教材,也可供對(duì)樣本數(shù)據(jù)處理技術(shù)感興趣的讀者閱讀。
許桂秋,運(yùn)營(yíng)總監(jiān)。2000年9月—2004年6月,廈門大學(xué),計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)習(xí),獲工學(xué)學(xué)士;2007年8月—2011年4月,中國(guó)石油天然氣股份有限公司,項(xiàng)目經(jīng)理,工程師;2011年6月—2016年7月,曙光信息產(chǎn)業(yè)股份有限公司,項(xiàng)目經(jīng)理,工程師;2016年7月—至今,中科瑞翼(北京)教育科技有限公司,運(yùn)營(yíng)總監(jiān)。主要著作出版情況:《大數(shù)據(jù)導(dǎo)論》、《Python編程基礎(chǔ)與應(yīng)用》、《NoSQL數(shù)據(jù)庫(kù)原理與應(yīng)用》、《數(shù)據(jù)挖掘與機(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ù)處理的注意事項(xiàng) 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的啟動(dòng) 20
2.2 Kettle的使用 21
2.2.1 轉(zhuǎn)換的基本概念 21
2.2.2 第一個(gè)轉(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ù)庫(kù)的數(shù)據(jù)導(dǎo)入與導(dǎo)出 69
3.2.1 關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)入與導(dǎo)出 69
3.2.2 MySQL數(shù)據(jù)庫(kù)的數(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請(qǐng)求的導(dǎo)入與導(dǎo)出 83
3.3.4 基于HTTP GET請(qǐng)求的導(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ù)校驗(yàn) 136
4.2 數(shù)據(jù)排重 141
4.2.1 如何識(shí)別重復(fù)數(shù)據(jù) 141
4.2.2 去除完全重復(fù)數(shù)據(jù) 142
4.2.3 去除不完全重復(fù)數(shù)據(jù) 144
4.3 使用腳本組件進(jìn)行數(shù)據(jù)清洗 147
4.3.1 使用JavaScript代碼組件清理數(shù)據(jù) 147
4.3.2 使用正則表達(dá)式組件清理數(shù)據(jù) 149
4.3.3 使用其他腳本組件清理數(shù)據(jù) 152
本章習(xí)題 156
第5章 數(shù)據(jù)標(biāo)注 157
5.1 數(shù)據(jù)標(biāo)注簡(jiǎn)介 157
5.1.1 數(shù)據(jù)標(biāo)注是什么 157
5.1.2 數(shù)據(jù)標(biāo)注分類簡(jiǎn)介 158
5.1.3 數(shù)據(jù)標(biāo)注流程簡(jiǎn)介 159
5.2 數(shù)據(jù)標(biāo)注分類 160
5.2.1 圖像標(biāo)注 161
5.2.2 文本標(biāo)注 164
5.2.3 語(yǔ)音標(biāo)注 166
5.3 數(shù)據(jù)標(biāo)注質(zhì)量檢驗(yàn) 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ì)量檢驗(yàn)方法 172
5.4 圖像數(shù)據(jù)標(biāo)注實(shí)戰(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ù)集的行人檢測(cè) 192
5.5 文本標(biāo)注實(shí)戰(zhàn) 198
本章習(xí)題 207
第6章 Kettle作業(yè)設(shè)計(jì) 208
6.1 作業(yè)的概念及組成 209
6.1.1 作業(yè)項(xiàng) 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è)項(xiàng) 212
6.3.1 創(chuàng)建作業(yè) 213
6.3.2 “START”作業(yè)項(xiàng) 213
6.3.3 “作業(yè)”作業(yè)項(xiàng) 213
6.3.4 “轉(zhuǎn)換”作業(yè)項(xiàng) 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 命令行啟動(dòng) 221
6.7 作業(yè)實(shí)驗(yàn) 223
本章習(xí)題 252
第7章 基于Kettle構(gòu)建數(shù)據(jù)倉(cāng)庫(kù) 253
7.1 數(shù)據(jù)倉(cāng)庫(kù)的介紹 253
7.1.1 數(shù)據(jù)倉(cāng)庫(kù)的起因 253
7.1.2 數(shù)據(jù)倉(cāng)庫(kù)的發(fā)展 254
7.1.3 數(shù)據(jù)倉(cāng)庫(kù)的定義 255
7.1.4 數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn) 255
7.1.5 數(shù)據(jù)倉(cāng)庫(kù)的結(jié)構(gòu) 255
7.1.6 數(shù)據(jù)倉(cāng)庫(kù)建模 256
7.1.7 數(shù)據(jù)倉(cāng)庫(kù)與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)建事實(shí)表 268
7.3.1 批量加載 268
7.3.2 查找維度 271
7.3.3 事實(shí)表的處理 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ù)庫(kù)的導(dǎo)入與導(dǎo)出 292
8.4.1 關(guān)系數(shù)據(jù)庫(kù)的導(dǎo)入與導(dǎo)出 293
8.4.2 非關(guān)系數(shù)據(jù)庫(kù)的導(dǎo)入與導(dǎo)出 294
本章習(xí)題 297
第9章 基于Python的數(shù)據(jù)整理 298
9.1 合并多個(gè)數(shù)據(jù)集 298
9.1.1 使用鍵進(jìn)行DataFrame合并 298
9.1.2 使用index進(jìn)行DataFrame合并 302
9.1.3 沿著橫軸或縱軸串接 303
9.2 數(shù)據(jù)重塑 305
9.2.1 多級(jí)索引數(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ù)或映射進(jìn)行數(shù)據(jù)轉(zhuǎn)換 312
9.3.3 值轉(zhuǎn)換 312
9.3.4 重命名軸索引 313
9.3.5 離散化和面元?jiǎng)澐?314
9.3.6 檢測(cè)或過(guò)濾異常值 317
9.3.7 排列和隨機(jī)采樣 318
9.3.8 計(jì)算指標(biāo)/啞變量 319
本章習(xí)題 322