Java數據分析指南
內容描述
當今,數據科學已經成為一個熱門的技術領域,例如數據處理、信息檢索、機器學習、自然語言處理、數據可視化等都得到了廣泛的應用和發展。而Java作為一門經典的編程語言,在數據科學領域也有著突出的表現。
本書旨在通過Java編程來引導讀者更好地進行數據分析。本書包含11章內容,詳細地介紹了數據科學導論、數據預處理、數據可視化、統計、關系數據庫、回歸分析、分類分析、聚類分析、推薦系統、NoSQL數據庫以及Java大數據分析等重要主題。
本書適合想通過Java解決數據科學問題的讀者,也適合數據科學領域的專業人士以及普通的Java開發者閱讀。通過閱讀本書,讀者將能夠對數據分析有更加深入的理解,並且掌握實用的數據分析技術。
目錄大綱
第1章數據科學導論1
1.1數據分析起源1
1.2科學方法2
1.3精算科學2
1.4蒸汽計算3
1.5一個驚人的例子4
1.6赫爾曼·何樂禮5
1.7 ENIAC 6
1.8 VisiCalc 7
1.9數據、信息和知識7
1.10為什麼用Java 7
1.11 Java集成開發環境8
1.12小結10
第2章數據預處理11
2.1數據類型11
2.2變量12
2.3數據點和數據集12
2.4關係數據庫表13
2.4.1關鍵字段13
2.4.2鍵—值對14
2.5哈希表14
2.6文件格式16
2.6.1微軟Excel數據18
2.6.2 XML和JSON數據21
2.7生成測試數據集27
2.7.1元數據28
2.7.2數據清洗29
2.7.3數據縮放30
2.7.4數據過濾30
2.7.5排序33
2.7.6合併34
2.7.7散列法37
2.8小結38
第3章數據可視化39
3.1表和圖40
3.1.1散點圖40
3.1.2線圖42
3.1.3條形圖43
3.1.4直方圖43
3.2時間序列45
3.3 Java實現46
3.4移動平均49
3.5數據排序53
3.6頻率分佈55
3.7正態分佈57
3.8指數分佈59
3.9 Java示例59
3.10小結61
第4章統計62
4.1描述性統計量62
4.2隨機抽樣65
4.3隨機變量67
4.4概率分佈67
4.5累積分佈69
4.6二項分佈70
4.7多元分佈74
4.8條件概率76
4.9概率事件的獨立性77
4.10列聯表78
4.11貝葉斯定理78
4.12協方差和相關80
4.13標準正態分佈82
4.14中心極限定理86
4.15置信區間87
4.16假設檢驗89
4.17小結91
第5章關係數據庫92
5.1關係數據模型92
5.2關係數據庫93
5.3外鍵94
5.4關係數據庫設計95
5.4.1創建數據庫96
5.4.2 SQL命令100
5.4.3數據插入數據庫104
5.4.4數據庫查詢106
5.4 .5 SQL數據類型107
5.4.6 JDBC 108
5.4.7使用JDBC PreparedStatement 110
5.4.8批處理112
5.4.9數據庫視圖115
5.4.10子查詢119
5.4.11表索引121
5.5小結123
第6章回歸分析124
6.1線性回歸124
6.1.1 Excel中的線性回歸125
6.1.2計算回歸係數129
6.1.3變異統計量131
6.1.4線性回歸的Java實現134
6.1.5安斯庫姆的四重奏141
6.2多項式回歸143
6.2.1多元線性回歸147
6.2.2 Apache Commons的實現150
6.2.3曲線擬合151
6.3小結153
第7章分類分析154
7.1決策樹156
7.1.1熵和它有什麼關係?157
7.1.2 ID3算法160
7.1.3 Weka平台171
7.1.4數據的ARFF文件類型171
7.1.5 Weka的Java實現174
7.2貝葉斯分類器175
7.2.1 Weka的Java實現177
7.2.2支持向量機算法181
7.3邏輯回歸184
7.3.1 k近鄰算法189
7.3.2模糊分類算法193
7.4小結194
第8章聚類分析195
8.1測量距離195
8.2維數災難200
8.3層次聚類法201
8.3.1 Weka實現210
8.3.2 K-均值聚類212
8.3.3 K-中心點聚類218
8.3.4仿射傳播聚類220
8.4小結228
第9章推薦系統229
9.1效用矩陣230
9.2相似性度量231
9.3餘弦相似性233
9.4一個簡單的推薦系統233
9.5亞馬遜項目對項目的協同過濾推薦244
9.6實現用戶評分250
9.7大型稀疏矩陣254
9.8使用隨機訪問文件257
9.9 Netflix大獎賽260
9.10小結260
第10章NoSQL數據庫261
10.1映射數據結構261
10.2 SQL與NoSQL 263
10.3 Mongo數據庫系統265
10.4 Library數據庫270
10.5 MongoDB的Java開發273
10.6 MongoDB的地理空間數據庫擴展281
10.7 MongoDB中的索引282
10.8為什麼選擇NoSQL,為什麼選擇MongoDB 283
10.9其他的NoSQL數據庫系統284
10.10小結284
第11章Java大數據分析285
11.1擴展、數據分塊和分片285
11.2谷歌的PageRank算法286
11.3谷歌的MapReduce框架290
11.4 MapReduce的一些應用示例291
11.5 “單詞計數”示例292
11.6可擴展性296
11.7 MapReduce的矩陣操作297
11.8 MongoDB中的MapReduce 301
11.9 Apache Hadoop 302
11.10 Hadoop MapReduce 303
11.11小結304
附錄Java工具305
作者介紹
作者:[美]約翰·哈伯德(John R. Hubbard)譯者:高蓉李茂
約翰·哈伯德(John R. Hubbard)任教於賓夕法尼亞州和弗吉尼亞州的高校,從事計算機數據分析工作長達40餘年。他擁有賓州州立大學的計算機科學碩士學位和密歇根大學的數學博士學位。目前,他在里士滿大學擔任數學和計算機科學的名譽教授,他在該校講授數據結構、數據庫系統、數值分析和大數據。
哈伯德博士出版了許多著作並發表過多篇論文,除了本書,他還出版過6本計算領域的著作。其中某些著作已經翻譯為德文、法文、中文和其他5種語言。此外,他還是一位業餘音樂家。