《mahout實戰》

《mahout實戰》java

基本信息mysql

原書名:Mahout in actionweb

做者: (美)Sean Owen    Robin Anil    Ted Dunning    Ellen Friedman   算法

譯者: 王斌 韓冀中 萬吉sql

叢書名: 圖靈程序設計叢書數據庫

出版社:人民郵電出版社apache

ISBN:9787115347220api

上架時間:2014-2-27服務器

出版日期:2014 年3月app

開本:16開

頁碼:1

版次:1-1

所屬分類:計算機 > 軟件與程序設計 > JAVA(J#) > Java

 

更多關於》》》 《mahout實戰》

 

編輯推薦

    Apache基金會官方推薦

   Mathou核心團隊權威力做

  大數據時代機器學習的實戰經典

 

內容簡介

    書籍

    計算機書籍

  《mahout實戰》是mahout 領域的權威著做,出自該項目核心成員之手,立足實踐,全面介紹了基於apache mahout的機器學習技術。本書開篇從mahout 的故事講起,接着分三部分探討了推薦系統、聚類和分類,最後的附錄涵蓋jvm 調優、mahout 數學知識和相關資源。

  《mahout實戰》適合全部數據分析和數據挖掘人員閱讀,須要有java 語言基礎。

 

媒體評論

  「全面介紹Mahout機器學習實戰的佳做。」

  ——Isabel Drost,Apache Mahout創始人

  「深刻淺出,複雜概念都講解得透徹明白。」

  ——Rick Wagner,Red Hat

  「出自核心開發團隊之手,學習Mahout必讀。」

——Philipp K. Janert,Gnuplot in Action做者

 

目錄

《mahout實戰》

第1章 初識mahout  1

1.1 mahout的故事  1

1.2 mahout的機器學習主題  2

1.2.1 推薦引擎  2

1.2.2 聚類  3

1.2.3 分類  4

1.3 利用mahout和hadoop處理大規模數據  4

1.4 安裝mahout  6

1.4.1 java和ide  6

1.4.2 安裝maven  7

1.4.3 安裝mahout  7

1.4.4 安裝hadoop  8

1.5 小結  8

第一部分 推薦

第2章 推薦系統  10

2.1 推薦的定義  10

2.2 運行第一個推薦引擎  11

2.2.1 建立輸入  11

2.2.2 建立一個推薦程序  13

2.2.3 分析輸出  14

2.2.3 評估一個推薦程序  14

2.3.1 訓練數據與評分  15

2.3.2 運行recommenderevaluator  15

2.3.3 評估結果  16

2.4 評估查準率與查全率  17

2.4.1 運行recommenderirstats-evaluator  17

2.4.2 查準率和查全率的問題  19

2.5 評估grouplens數據集  19

2.5.1 提取推薦程序的輸入  19

2.5.2 體驗其餘推薦程序  20

2.6 小結  20

第3章 推薦數據的表示  21

3.1 偏好數據的表示  21

3.1.1 preference對象  21

3.1.2 preferencearray及其實現  22

3.1.3 改善聚合的性能  23

3.1.4 fastbyidmap和fastidset  23

3.2 內存級datamodel  24

3.2.1 genericdatamodel  24

3.2.2 基於文件的數據  25

3.2.3 可刷新組件  25

3.2.4 更新文件  26

3.2.5 基於數據庫的數據  26

3.2.6 jdbc和mysql  27

3.2.7 經過jndi進行配置  27

3.2.8 利用程序進行配置  28

3.3 無偏好值的處理  29

3.3.1 什麼時候忽略值  29

3.3.2 無偏好值時的內存級表示  30

3.3.3 選擇兼容的實現  31

3.4 小結  33

第4章 進行推薦  34

4.1 理解基於用戶的推薦  34

4.1.1 推薦什麼時候會出錯  34

4.1.2 推薦什麼時候是正確的  35

4.2 探索基於用戶的推薦程序  36

4.2.1 算法  36

4.2.2 基於genericuserbased-recommender實現算法  36

4.2.3 嘗試grouplens數據集  37

4.2.4 探究用戶鄰域  38

4.2.5 固定大小的鄰域  39

4.2.6 基於閾值的鄰域  39

4.3 探索類似性度量  40

4.3.1 基於皮爾遜相關係數的類似度  40

4.3.2 皮爾遜相關係數存在的問題  42

4.3.3 引入權重  42

4.3.4 基於歐氏距離定義類似度  43

4.3.5 採用餘弦類似性度量  43

4.3.6 採用斯皮爾曼相關係數基於相對排名定義類似度  44

4.3.7 忽略偏好值基於谷本系數計算類似度  45

4.3.8 基於對數似然比更好地計算類似度  46

4.3.9 推測偏好值  47

4.4 基於物品的推薦  47

4.4.1 算法  48

4.4.2 探究基於物品的推薦程序  49

4.5 slope-one推薦算法  50

4.5.1 算法  50

4.5.2 slope-one實踐  51

4.5.3 diffstorage和內存考慮  52

4.5.4 離線計算量的分配  53

4.6 最新以及試驗性質的推薦算法  53

4.6.1 基於奇異值分解的推薦算法  53

4.6.2 基於線性插值物品的推薦算法  54

4.6.3 基於聚類的推薦算法  55

4.7 對比其餘推薦算法  56

4.7.1 爲mahout引入基於內容的技術  56

4.7.2 深刻理解基於內容的推薦算法  57

4.8 對比基於模型的推薦算法  57

4.9 小結  57

第5章 讓推薦程序實用化  59

5.1 分析來自約會網站的樣本數據  59

5.2 找到一個有效的推薦程序  61

5.2.1 基於用戶的推薦程序  61

5.2.2 基於物品的推薦程序  62

5.2.3 slope-one推薦程序  63

5.2.4 評估查準率和查全率  63

5.2.5 評估性能  64

5.3 引入特定域的信息  65

5.3.1 採用一個定製的物品類似性度量  65

5.3.2 基於內容進行推薦  66

5.3.3 利用idrescorer修改推薦結果  66

5.3.4 在idrescorer中引入性別  67

5.3.5 封裝一個定製的推薦程序  69

5.4 爲匿名用戶作推薦  71

5.4.1 利用plusanonymoususer-datamodel處理臨時用戶  71

5.4.2 聚合匿名用戶  73

5.5 建立一個支持web訪問的推薦程序  73

5.5.1 封裝war文件  74

5.5.2 測試部署  74

5.6 更新和監控推薦程序  75

5.7 小結  76

第6章 分佈式推薦  78

6.1 分析wikipedia數據集  78

6.1.1 挑戰規模  79

6.1.2 分佈式計算的優缺點  80

6.2 設計一個基於物品的分佈式推薦算法  81

6.2.1 構建共現矩陣  81

6.2.2 計算用戶向量  82

6.2.3 生成推薦結果  82

6.2.4 解讀結果  83

6.2.5 分佈式實現  83

6.3 基於mapreduce實現分佈式算法  83

6.3.1 mapreduce簡介  84

6.3.2 向mapreduce轉換:生成用戶向量  84

6.3.3 向mapreduce轉換:計算共現關係  85

6.3.4 向mapreduce轉換:從新思考矩陣乘  87

6.3.5 向mapreduce轉換:經過部分乘積計算矩陣乘  87

6.3.6 向mapreduce轉換:造成推薦  90

6.4 在hadoop上運行mapreduce  91

6.4.1 安裝hadoop  92

6.4.2 在hadoop上執行推薦  92

6.4.3 配置mapper和reducer  94

6.5 僞分佈式推薦程序  94

6.6 深刻理解推薦  95

6.6.1 在雲上運行程序  95

6.6.2 考慮推薦的非傳統用法  97

6.7 小結  97

第二部分 聚類

第7章 聚類介紹  100

7.1 聚類的基本概念  100

7.2 項目類似性度量  102

7.3 hello world:運行一個簡單的聚類示例  103

7.3.1 生成輸入數據  103

7.3.2 使用mahout聚類  104

7.3.3 分析輸出結果  107

7.4 探究距離測度  108

7.4.1 歐氏距離測度  108

7.4.2 平方歐氏距離測度  108

7.4.3 曼哈頓距離測度  108

7.4.4 餘弦距離測度  109

7.4.5 谷本距離測度  110

7.4.6 加權距離測度  110

7.5 在簡單示例上使用各類距離測度  111

7.6 小結  111

第8章 聚類數據的表示  112

8.1 向量可視化  113

8.1.1 將數據轉換爲向量  113

8.1.2 準備mahout所用的向量  115

8.2 將文本文檔表示爲向量  116

8.2.1 使用tf-idf改進加權  117

8.2.2 經過n-gram搭配詞考察單詞的依賴性  118

8.3 從文檔中生成向量  119

8.4 基於歸一化改善向量的質量  123

8.5 小結  124

第9章 mahout中的聚類算法  125

9.1 k-means聚類  125

9.1.1 關於k-means你須要瞭解的  126

9.1.2 運行k-means聚類  127

9.1.3 經過canopy聚類尋找最佳k值  134

9.1.4 案例學習:使用k-means對新聞聚類  138

9.2 超越k-means: 聚類技術概覽  141

9.2.1 不一樣類型的聚類問題  141

9.2.2 不一樣的聚類方法  143

9.3 模糊k-means聚類  145

9.3.1 運行模糊k-means聚類  145

9.3.2 多模糊會過分嗎  147

9.3.3 案例學習:用模糊k-means對新聞進行聚類  148

9.4 基於模型的聚類  149

9.4.1 k-means的不足  149

9.4.2 狄利克雷聚類  150

9.4.3 基於模型的聚類示例  151

9.5 用lda進行話題建模  154

9.5.1 理解lda  155

9.5.2 對比tf-idf與lda  156

9.5.3 lda參數調優  156

9.5.4 案例學習:尋找新聞文檔中的話題  156

9.5.5 話題模型的應用  158

9.6 小結  158

第10章 評估並改善聚類質量  160

10.1 檢查聚類輸出  160

10.2 分析聚類輸出  162

10.2.1 距離測度與特徵選擇  163

10.2.2 簇間與簇內距離  163

10.2.3 簇的混合與重疊  166

10.3 改善聚類質量  166

10.3.1 改進文檔向量生成過程  166

10.3.2 編寫自定義距離測度  169

10.4 小結  171

第11章 將聚類用於生產環境  172

11.1 hadoop下運行聚類算法的快速入門  172

11.1.1 在本地hadoop集羣上運行聚類算法  173

11.1.2 定製hadoop配置  174

11.2 聚類性能調優  176

11.2.1 在計算密集型操做中避免性能缺陷  176

11.2.2 在i/o密集型操做中避免性能缺陷  178

11.3 批聚類及在線聚類  178

11.3.1 案例分析:在線新聞聚類  179

11.3.2 案例分析:對維基百科文章聚類  180

11.4 小結  181

第12章 聚類的實際應用  182

12.1 發現twitter上的類似用戶  182

12.1.1 數據預處理及特徵加權  183

12.1.2 避免特徵選擇中的常見陷阱  184

12.2 爲last.fm上的藝術家推薦標籤  187

12.2.1 利用共現信息進行標籤推薦  187

12.2.2 構建last.fm藝術家詞典  188

12.2.3 將last.fm標籤轉換成以藝術家爲特徵的向量  190

12.2.4 在last.fm數據上運行k-means算法  191

12.3 分析stack overflow數據集  193

12.3.1 解析stack overflow數據集  193

12.3.2 在stack overflow中發現聚類問題  193

12.4 小結  194

第三部分 分類

第13章 分類  198

13.1 爲何用mahout作分類  198

13.2 分類系統基礎  199

13.2.1 分類、推薦和聚類的區別  201

13.2.2 分類的應用  201

13.3 分類的工做原理  202

13.3.1 模型  203

13.3.2 訓練、測試與生產  203

13.3.3 預測變量與目標變量  204

13.3.4 記錄、字段和值  205

13.3.5 預測變量值的4種類型  205

13.3.6 有監督學習與無監督學習  207

13.4 典型分類項目的工做流  207

13.4.1 第一階段工做流:訓練分類模型  208

13.4.2 第二階段工做流:評估分類模型  212

13.4.3 第三階段工做流:在生產中使用模型  212

13.5 按部就班的簡單分類示例  213

13.5.1 數據和挑戰  213

13.5.2 訓練一個模型來尋找顏色填充:初步設想  214

13.5.3 選擇一個學習算法來訓練模型  215

13.5.4 改進填充顏色分類器的性能  217

13.6 小結  221

第14章 訓練分類器  222

14.1 提取特徵以構建分類器  222

14.2 原始數據的預處理  224

14.2.1 原始數據的轉換  224

14.2.2 一個計算營銷的例子  225

14.3 將可分類數據轉換爲向量  226

14.3.1 用向量表示數據  226

14.3.2 用mahout api作特徵散列  228

14.4 用sgd對20 newsgroups數據集進行分類  231

14.4.1 開始:數據集預覽  231

14.4.2 20 newsgroups數據特徵的解析和詞條化  234

14.4.3 20 newsgroups數據的訓練代碼  234

14.5 選擇訓練分類器的算法  238

14.5.1 非並行但仍很強大的算法:sgd和svm  239

14.5.2 樸素分類器的力量:樸素貝葉斯及補充樸素貝葉斯  239

14.5.3 精密結構的力量:隨機森林算法  240

14.6 用樸素貝葉斯對20 newsgroups數據分類  241

14.6.1 開始:爲樸素貝葉斯提取數據  241

14.6.2 訓練樸素貝葉斯分類器  242

14.6.3 測試樸素貝葉斯模型  242

14.7 小結  244

第15章 分類器評估及調優  245

15.1 mahout中的分類器評估  245

15.1.1 獲取即時反饋  246

15.1.2 肯定分類「好」的含義  246

15.1.3 認識不一樣的錯誤代價  247

15.2 分類器評估api  247

15.2.1 計算auc  248

15.2.2 計算混淆矩陣和熵矩陣  250

15.2.3 計算平均對數似然  252

15.2.4 模型剖析  253

15.2.5 20 newsgroups語料上sgd分類器的性能指標計算  254

15.3 分類器性能降低時的處理  257

15.3.1 目標泄漏  258

15.3.2 特徵提取崩潰  260

15.4 分類器性能調優  262

15.4.1 問題調整  262

15.4.2 分類器調優  265

15.5 小結  267

第16章 分類器部署  268

16.1 巨型分類系統的部署過程  268

16.1.1 理解問題  269

16.1.2 根據須要優化特徵提取過程  269

16.1.3 根據須要優化向量編碼  269

16.1.4 部署可擴展的分類器服務  270

16.2 肯定規模和速度需求  270

16.2.1 多大才算大  270

16.2.2 在規模和速度之間折中  272

16.3 對大型系統構建訓練流水線  273

16.3.1 獲取並保留大規模數據  274

16.3.2 非規範化及下采樣  275

16.3.3 訓練中的陷阱  276

16.3.4 快速讀取數據並對其進行編碼  278

16.4 集成mahout分類器  282

16.4.1 提早計劃:集成中的關鍵問題  283

16.4.2 模型序列化  287

16.5 案例:一個基於thrift的分類服務器  288

16.5.1 運行分類服務器  292

16.5.2 訪問分類器服務  294

16.6 小結  296

第17章 案例分析——shop it to me  297

17.1 shop it to me選擇mahout的緣由  297

17.1.1 shop it to me公司簡介  298

17.1.2 shop it to me須要分類系統的緣由  298

17.1.3 對mahout向外擴展  298

17.2 郵件交易系統的通常結構  299

17.3 訓練模型  301

17.3.1 定義分類項目的目標  301

17.3.2 按時間劃分  303

17.3.3 避免目標泄漏  303

17.3.4 調整學習算法  303

17.3.5 特徵向量編碼  304

17.4 加速分類過程  306

17.4.1 特徵向量的線性組合  307

17.4.2 模型得分的線性擴展  308

17.5 小結  310

附錄a jvm調優  311

附錄b mahout數學基礎  313

附錄c 相關資源  318

索引  320

 

本圖書信息來源:互動出版

相關文章
相關標籤/搜索