本書介紹如何使用Java創建并實現機器學習算法,既有基礎知識,又提供實戰案例。主要內容包括:機器學習基本概念、原理,Weka、Mahout、Spark等常見機器學習庫的用法,各類機器學習常見任務,包括分類、預測預報、購物籃分析、檢測異常、行為識別、圖像識別以及文本分析。*后還提供了相關Web資源、各種技術研討會議以及機器學習挑戰賽等進階所需內容。
本書適合機器學習入門者,尤其是想使用Java機器學習庫進行數據分析的讀者。
·快速了解用Java創建并實現機器學習
·涵蓋Mahout、Weka、Spark等常見庫的功能和用法
·介紹各種常見任務的機器學習應用,如基于數據庫的預測預報、購物籃分析、圖像識別、行為識別、文本分析等
博士,人工智能與機器學習專家,現任Evolven公司(領先的IT運營分析公司,致力于配置管理業務)首席數據科學家,主攻機器學習、預測分析、模式挖掘與異常檢測,旨在把數據轉化為人類可理解的信息與可供實用的知識。 更多信息請訪問http://bostjankaluza.net。
目 錄
第1章 機器學習應用快速入門1
1.1 機器學習與數據科學1
1.1.1 機器學習能夠解決的問題2
1.1.2 機器學習應用流程3
1.2 數據與問題定義4
1.3 數據收集5
1.3.1 發現或觀察數據5
1.3.2 生成數據6
1.3.3 采樣陷阱7
1.4 數據預處理7
1.4.1 數據清洗8
1.4.2 填充缺失值8
1.4.3 剔除異常值8
1.4.4 數據轉換9
1.4.5 數據歸約10
1.5 無監督學習10
1.5.1 查找相似項目10
1.5.2 聚類12
1.6 監督學習13
1.6.1 分類14
1.6.2 回歸16
1.7 泛化與評估18
1.8 小結21
第2章 面向機器學習的Java庫與
平臺22
2.1 Java環境22
2.2 機器學習庫23
2.2.1 Weka23
2.2.2 Java機器學習25
2.2.3 Apache Mahout26
2.2.4 Apache Spark27
2.2.5 Deeplearning4j28
2.2.6 MALLET29
2.2.7 比較各個庫30
2.3 創建機器學習應用31
2.4 處理大數據31
2.5 小結33
第3章 基本算法分類、回歸、
聚類34
3.1 開始之前34
3.2 分類35
3.2.1 數據35
3.2.2 加載數據36
3.2.3 特征選擇37
3.2.4 學習算法38
3.2.5 對新數據分類40
3.2.6 評估與預測誤差度量41
3.2.7 混淆矩陣41
3.2.8 選擇分類算法42
3.3 回歸43
3.3.1 加載數據43
3.3.2 分析屬性44
3.3.3 創建與評估回歸模型45
3.3.4 避免常見回歸問題的小技巧48
3.4 聚類49
3.4.1 聚類算法49
3.4.2 評估50
3.5 小結51
第4章 利用集成方法預測客戶關系52
4.1 客戶關系數據庫52
4.1.1 挑戰53
4.1.2 數據集53
4.1.3 評估54
4.2 最基本的樸素貝葉斯分類器基準55
4.2.1 獲取數據55
4.2.2 加載數據56
4.3 基準模型58
4.3.1 評估模型58
4.3.2 實現樸素貝葉斯基準線59
4.4 使用集成方法進行高級建模60
4.4.1 開始之前60
4.4.2 數據預處理61
4.4.3 屬性選擇62
4.4.4 模型選擇63
4.4.5 性能評估66
4.5 小結66
第5章 關聯分析67
5.1 購物籃分析67
5.2 關聯規則學習69
5.2.1 基本概念69
5.2.2 Apriori算法71
5.2.3 FP-增長算法71
5.2.4 超市數據集72
5.3 發現模式73
5.3.1 Apriori算法73
5.3.2 FP-增長算法74
5.4 在其他領域中的應用75
5.4.1 醫療診斷75
5.4.2 蛋白質序列75
5.4.3 人口普查數據76
5.4.4 客戶關系管理76
5.4.5 IT運營分析76
5.5 小結77
第6章 使用Apache Mahout制作
推薦引擎78
6.1 基本概念78
6.1.1 關鍵概念79
6.1.2 基于用戶與基于項目的分析79
6.1.3 計算相似度的方法80
6.1.4 利用與探索81
6.2 獲取Apache Mahout81
6.3 創建一個推薦引擎84
6.3.1 圖書評分數據集84
6.3.2 加載數據84
6.3.3 協同過濾89
6.4 基于內容的過濾97
6.5 小結97
第7章 欺詐與異常檢測98
7.1 可疑與異常行為檢測98
7.2 可疑模式檢測99
7.3 異常模式檢測100
7.3.1 分析類型100
7.3.2 事務分析101
7.3.3 規劃識別101
7.4 保險理賠欺詐檢測101
7.4.1 數據集102
7.4.2 為可疑模式建模103
7.5 網站流量異常檢測107
7.5.1 數據集107
7.5.2 時序數據中的異常檢測108
7.6 小結113
第8章 利用Deeplearning4j進行
圖像識別114
8.1 圖像識別簡介114
8.2 圖像分類120
8.2.1 Deeplearning4j120
8.2.2 MNIST數據集121
8.2.3 加載數據121
8.2.4 創建模型122
8.3 小結128
第9章 利用手機傳感器進行
行為識別129
9.1 行為識別簡介129
9.1.1 手機傳感器130
9.1.2 行為識別流水線131
9.1.3 計劃132
9.2 從手機收集數據133
9.2.1 安裝Android Studio133
9.2.2 加載數據采集器133
9.2.3 收集訓練數據136
9.3 創建分類器138
9.3.1 減少假性轉換140
9.3.2 將分類器嵌入移動應用142
9.4 小結143
第10章 利用Mallet進行文本挖掘
主題模型與垃圾郵件檢測144
10.1 文本挖掘簡介144
10.1.1 主題模型145
10.1.2 文本分類145
10.2 安裝Mallet146
10.3 使用文本數據147
10.3.1 導入數據149
10.3.2 對文本數據做預處理150
10.4 為BBC新聞做主題模型152
10.4.1 BBC數據集152
10.4.2 建模153
10.4.3 評估模型155
10.4.4 重用模型156
10.5 垃圾郵件檢測157
10.5.1 垃圾郵件數據集158
10.5.2 特征生成159
10.5.3 訓練與測試模型160
10.6 小結161
第11章 機器學習進階162
11.1 現實生活中的機器學習162
11.1.1 噪聲數據162
11.1.2 類不平衡162
11.1.3 特征選擇困難163
11.1.4 模型鏈163
11.1.5 評價的重要性163
11.1.6 從模型到產品164
11.1.7 模型維護164
11.2 標準與標記語言165
11.2.1 CRISP-DM165
11.2.2 SEMMA方法166
11.2.3 預測模型標記語言166
11.3 云端機器學習167
11.4 Web資源與比賽168
11.4.1 數據集168
11.4.2 在線課程169
11.4.3 比賽170
11.4.4 網站與博客170
11.4.5 場館與會議171
11.5 小結171