本書從實用的角度出發(fā),采用理論與實踐相結合的方式,介紹樣本數(shù)據(jù)處理的基礎知識,力求培養(yǎng)讀者使用Python語言及Kettle軟件進行數(shù)據(jù)處理的能力。全書內(nèi)容分別為數(shù)據(jù)預處理概述、Kettle工具的初步使用、數(shù)據(jù)的導入與導出、數(shù)據(jù)清洗、數(shù)據(jù)標注、Kettle作業(yè)設計、基于Kettle構建數(shù)據(jù)倉庫、基于Python的數(shù)據(jù)導入與導出、基于Python的數(shù)據(jù)整理。 本書作為人工智能學科相關的樣本數(shù)據(jù)處理技術的入門教材,目的不在于是覆蓋樣本數(shù)據(jù)處理技術的所有知識點,而是介紹樣本數(shù)據(jù)處理的主要應用,使讀者了解樣本數(shù)據(jù)處理的基本構成,以及如何應對不同數(shù)據(jù)類型的數(shù)據(jù)預處理工作。為了增強實踐效果,本書中引入了多個基礎技術案例及綜合實踐案例,以幫助讀者了解樣本數(shù)據(jù)處理涉及的基本技術的知識和技能。 本書可作為高等院校數(shù)據(jù)科學與大數(shù)據(jù)技術、計算機、信息管理等相關專業(yè)課程的教材,也可供對樣本數(shù)據(jù)處理技術感興趣的讀者閱讀。
許桂秋,運營總監(jiān)。2000年9月—2004年6月,廈門大學,計算機科學與技術專業(yè)學習,獲工學學士;2007年8月—2011年4月,中國石油天然氣股份有限公司,項目經(jīng)理,工程師;2011年6月—2016年7月,曙光信息產(chǎn)業(yè)股份有限公司,項目經(jīng)理,工程師;2016年7月—至今,中科瑞翼(北京)教育科技有限公司,運營總監(jiān)。主要著作出版情況:《大數(shù)據(jù)導論》、《Python編程基礎與應用》、《NoSQL數(shù)據(jù)庫原理與應用》、《數(shù)據(jù)挖掘與機器學習》等9本系列教材,浙江科技出版社,2019年。
第1章 數(shù)據(jù)預處理概述 1
1.1 數(shù)據(jù)預處理的背景與目的 1
1.1.1 數(shù)據(jù)預處理的背景:數(shù)據(jù)質(zhì)量 1
1.1.2 數(shù)據(jù)預處理的目的 3
1.2 數(shù)據(jù)預處理的流程 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ù)預處理的注意事項 14
1.3 數(shù)據(jù)預處理的工具 14
本章習題 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 轉換的基本概念 21
2.2.2 第一個轉換案例 23
本章習題 42
第3章 數(shù)據(jù)的導入與導出 43
3.1 基于文件的數(shù)據(jù)導入與導出 43
3.1.1 文本文件的導入與導出 43
3.1.2 文本文件的導入與導出案例 45
3.1.3 Excel文件的導入與導出 51
3.1.4 Excel文件的導入與導出案例 51
3.1.5 XML文件的導入與導出 59
3.1.6 XML文件的導入與導出案例 59
3.1.7 JSON文件的導入與導出 64
3.1.8 JSON文件的導入與導出案例 65
3.2 基于數(shù)據(jù)庫的數(shù)據(jù)導入與導出 69
3.2.1 關系數(shù)據(jù)庫的數(shù)據(jù)導入與導出 69
3.2.2 MySQL數(shù)據(jù)庫的數(shù)據(jù)導入與導出案例 71
3.3 基于Web的數(shù)據(jù)導入與導出 78
3.3.1 HTML數(shù)據(jù)的導入與導出 78
3.3.2 HTML數(shù)據(jù)的導入與導出案例 79
3.3.3 基于HTTP GET請求的導入與導出 83
3.3.4 基于HTTP GET請求的導入與導出案例 83
3.4 基于CDC變更數(shù)據(jù)的導入與導出 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
本章習題 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 如何識別重復數(shù)據(jù) 141
4.2.2 去除完全重復數(shù)據(jù) 142
4.2.3 去除不完全重復數(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
本章習題 156
第5章 數(shù)據(jù)標注 157
5.1 數(shù)據(jù)標注簡介 157
5.1.1 數(shù)據(jù)標注是什么 157
5.1.2 數(shù)據(jù)標注分類簡介 158
5.1.3 數(shù)據(jù)標注流程簡介 159
5.2 數(shù)據(jù)標注分類 160
5.2.1 圖像標注 161
5.2.2 文本標注 164
5.2.3 語音標注 166
5.3 數(shù)據(jù)標注質(zhì)量檢驗 167
5.3.1 數(shù)據(jù)標注質(zhì)量的影響 167
5.3.2 數(shù)據(jù)標注的質(zhì)量標準 169
5.3.3 數(shù)據(jù)標注質(zhì)量檢驗方法 172
5.4 圖像數(shù)據(jù)標注實戰(zhàn) 175
5.4.1 車輛車牌標注 175
5.4.2 遙感影像標注 180
5.4.3 醫(yī)療影像標注 184
5.4.4 行人數(shù)據(jù)標注 188
5.4.5 基于行人標注數(shù)據(jù)集的行人檢測 192
5.5 文本標注實戰(zhàn) 198
本章習題 207
第6章 Kettle作業(yè)設計 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 “轉換”作業(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
本章習題 252
第7章 基于Kettle構建數(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ù)倉庫的結構 255
7.1.6 數(shù)據(jù)倉庫建模 256
7.1.7 數(shù)據(jù)倉庫與ETL的關系 257
7.2 構建維度表 258
7.2.1 管理各種鍵 258
7.2.2 維度表的加載 262
7.2.3 緩慢變化維度 263
7.3 構建事實表 268
7.3.1 批量加載 268
7.3.2 查找維度 271
7.3.3 事實表的處理 271
本章習題 280
第8章 基于Python的數(shù)據(jù)導入與導出 281
8.1 Pandas 281
8.1.1 Series 282
8.1.2 DataFrame 284
8.2 文本文件的導入與導出 286
8.2.1 導入CSV文件 286
8.2.2 導出CSV文件 290
8.2.3 JSON格式數(shù)據(jù)的導入與導出 291
8.3 Excel文件的導入與導出 292
8.4 數(shù)據(jù)庫的導入與導出 292
8.4.1 關系數(shù)據(jù)庫的導入與導出 293
8.4.2 非關系數(shù)據(jù)庫的導入與導出 294
本章習題 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 應用pivot方法重塑數(shù)據(jù) 307
9.3 數(shù)據(jù)轉換 310
9.3.1 移除重復數(shù)據(jù) 310
9.3.2 利用函數(shù)或映射進行數(shù)據(jù)轉換 312
9.3.3 值轉換 312
9.3.4 重命名軸索引 313
9.3.5 離散化和面元劃分 314
9.3.6 檢測或過濾異常值 317
9.3.7 排列和隨機采樣 318
9.3.8 計算指標/啞變量 319
本章習題 322