推薦系統開發實戰

高陽團

  • 出版商: 電子工業
  • 出版日期: 2019-07-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7121365200
  • ISBN-13: 9787121365201
  • 相關分類: 推薦系統
  • 立即出貨

買這商品的人也買了...

相關主題

商品描述

過程完整:從基本原理到實際項目開發 實例豐富:將理論學習落實到具體實踐(共34個實例)簡潔流暢:採用短段、短句,讀來有順流而下般流暢感實戰性強:搭建新聞推薦系統、音樂推薦系統、圖書推薦系統學習無憂:免費提供書中用到的素材和源代碼後繼服務:讀者可加入本書QQ學習群在線交流

目錄大綱

第1篇 推薦系統的背景介紹和入門

 

第1章 走進推薦系統 2

1.1 從“啤酒與尿布”到推薦系統的前世今生 2

∣1.1.1 “啤酒與尿布” 2

∣1.1.2 推薦系統的前世今生 2

1.2 推薦系統可以做什麼 4

∣1.2.1 什麼是推薦系統 4

∣1.2.2 在電商類產品中的應用 5

∣1.2.3 在社交類產品中的應用 6

∣1.2.4 在音樂類產品中的應用 8

∣1.2.5 在視頻類產品中的應用 9

∣1.2.6 在閱讀類產品中的應用 10

∣1.2.7 在服務類產品中的應用 11

1.3 學習本書需要的技能 12

∣1.3.1 Python基礎 12

∣1.3.2 數據結構 14

∣1.3.3 工程能力 15

1.4 如何學習本書 17

1.5 知識導圖 17

第2章 搭建你的一個推薦系統 19

2.1 實例1:搭建電影推薦系統 19

∣2.1.1 利用Netflix數據集準備數據 19

∣2.1.2 使用Python表示數據 21

∣2.1.3 選擇相似用戶 23

∣2.1.4 為用戶推薦相似用戶喜歡的電影 24

∣2.1.5 分析效果 25

2.2 總結:搭建推薦系統的一般步驟 26

∣2.2.1 準備數據 26

∣2.2.2 選擇算法 27

∣2.2.3 模型訓練 28

∣2.2.4 效果評估 28

2.3 知識導圖 28

第3章 推薦系統常用數據集介紹 29

3.1 MovieLens數據集 29

∣3.1.1 README 29

∣3.1.2 ratings.dat 29

∣3.1.3 movies.dat 31

∣3.1.4 users.dat 34

3.2 Book-Crossings數據集 36

∣3.2.1 BX-Book-Ratings.csv 37

∣3.2.2 BX-Books.csv 39

∣3.2.3 BX-Users.csv 39

3.3 Last.fm數據集 41

∣3.3.1 README 41

∣3.3.2 artists.dat 41

∣3.3.3 tags.dat 41

∣3.3.4 user_artists.dat 42

∣3.3.5 user_friends.dat 42

∣3.3.6 uses_taggedartists.dat 42

∣3.3.7 user_taggedartists-timestamps.dat 42

3.4 FourSquare數據集 43

∣3.4.1 users.dat 43

∣3.4.2 venues.dat 44

∣3.4.3 checkins.dat 44

∣3.4.4 socialgraph.dat 44

∣3.4.5 ratings.dat 45

3.5 Kaggle比賽之retailrocket 數據集 46

∣3.5.1 events.csv 47

∣3.5.2 category_tree.csv 49

∣3.5.3 item_properties.csv 49

3.6 場景分析 49

3.7 知識導圖 50

 

第2篇 推薦系統涉及的算法介紹、冷啟動和效果評估

 

第4章 數據挖掘——讓推薦系統更懂你 52

4.1 數據預處理 52

∣4.1.1 數據標準化 52

∣4.1.2 實例2:實現數據的標準化 54

∣4.1.3 數據離散化 56

∣4.1.4 實例3:基於信息熵的數據離散化 58

∣4.1.5 數據抽樣 61

∣4.1.6 數據降維 63

∣4.1.7 實例4:對鳶尾花數據集特徵進行降維 66

∣4.1.8 數據清理 68

∣4.1.9 相似度計算 71

4.2 數據分類 74

∣4.2.1 K最近鄰算法 74

∣4.2.2 實例5:利用KNN算法實現性別判定 75

∣4.2.3 決策樹算法 77

∣4.2.4 實例6:構建是否舉辦活動的決策樹 80

∣4.2.5 樸素貝葉斯算法 84

∣4.2.6 實例7:基於樸素貝葉斯算法進行異常賬戶檢測 87

∣4.2.7 分類器的評估 90

∣4.2.8 實例8:scikit-learn中的分類效果評估 92

4.3 數據聚類 92

∣4.3.1 kMeans算法 92

∣4.3.2 實例9:基於kMeans算法進行商品價格聚類 95

∣4.3.3 二分-kMeans算法 98

∣4.3.4 實例10:基於二分-kMeans算法進行商品價格聚類 99

∣4.3.5 聚類算法的評估 100

∣4.3.6 實例11:scikit-learn中的聚類效果評估 102

4.4 關聯分析 103

∣4.4.1 Apriori算法 103

∣4.4.2 實例12:基於Apriori算法實現頻繁項集和相關規則挖掘 106

4.5 知識導圖 110

第5章 基於用戶行為特徵的推薦 111

5.1 用戶行為分類 111

5.2 基於內容的推薦算法 112

∣5.2.1 算法原理——從“構造特徵”到“判斷用戶是否喜歡” 112

∣5.2.2 實例13:對手機屬性進行特徵建模 115

5.3 實例14:編寫一個基於內容推薦算法的電影推薦系統 117

∣5.3.1 了解實現思路 117

∣5.3.2 準備數據 119

∣5.3.3 選擇算法 122

∣5.3.4 模型訓練 122

∣5.3.5 效果評估 123

5.4 基於近鄰的推薦算法 124

∣5.4.1 UserCF算法的原理——先“找到相似同戶”,再“找到他們喜歡的物品” 124

∣5.4.2 ItemCF算法的原理——先“找到用戶喜歡的物品”,再“找到喜歡物品的相似物品” 131

5.5 實例15:編寫一個基於UserCF算法的電影推薦系統 137

∣5.5.1 了解實現思路 138

∣5.5.2 準備數據 138

∣5.5.3 選擇算法 138

∣5.5.4 模型訓練 138

∣5.5.5 效果評估 141

5.6 實例16:編寫一個基於ItemCF算法的電影推薦系統 141

∣5.6.1 了解實現思路 141

∣5.6.2 準備數據 142

∣5.6.3 選擇算法 142

∣5.6.4 模型訓練 142

∣5.6.5 效果評估 144

5.7 對比分析:UserCF算法和ItemCF算法 145

5.8 對比分析:基於內容和基於近鄰 146

5.9 基於隱語義模型的推薦算法 147

∣5.9.1 LFM概述 147

∣5.9.2 LFM算法理解 148

∣5.10 實例17:編寫一個基於LFM的電影推薦系統 152

∣5.10.1 了解實現思路 152

∣5.10.2 準備數據 152

∣5.10.3 選擇算法 154

∣5.10.4 模型訓練 155

∣5.10.5 效果評估 158

5.11 知識導圖 159

第6章 基於標籤的推薦 161

6.1 基於標籤系統的應用 161

∣6.1.1 Last.fm 161

∣6.1.2 Delicious 162

∣6.1.3 豆瓣 163

∣6.1.4 網易云音樂 163

6.2 數據標註與關鍵詞提取 165

∣6.2.1 推薦系統中的數據標註 165

∣6.2.2 推薦系統中的關鍵詞提取 167

∣6.2.3 標籤的分類 168

6.3 實例18:基於TF-IDF算法提取商品標題的關鍵詞 169

∣6.3.1 了解TF-IDF算法 169

∣6.3.2 認識商品標題描述 170

∣6.3.3 提取關鍵詞 170

6.4 基於標籤的推薦系統 174

∣6.4.1 標籤評分算法 174

∣6.4.2 標籤評分算法改進 176

∣6.4.3 標籤基因 177

∣6.4.4 用戶興趣建模 177

6.5 實例19:利用標籤推薦算法實現藝術家的推薦 178

∣6.5.1 了解實現思路 178

∣6.5.2 準備數據 178

∣6.5.3 選擇算法 179

∣6.5.4 模型訓練 179

∣6.5.5 效果評估 182

6.6 知識導圖 182

第7章 基於上下文的推薦 184

7.1 基於時間特徵的推薦 184

∣7.1.1 時間效應介紹 184

∣7.1.2 時間效應分析 187

∣7.1.3 推薦系統的實時性 194

∣7.1.4 協同過濾中的時間因子 195

7.2 實例20:實現一個“增加時間衰減函數的協同過濾算法” 197

∣7.2.1 在UserCF算法中增加時間衰減函數 197

∣7.2.2 在ItemCF算法中增加時間衰減函數 199

7.3 基於地域和熱度特徵的推薦 200

∣7.3.1 為什麼要將地域和熱度特徵放在一起 201

∣7.3.2 解讀LARS中的地域特徵 202

∣7.3.3 基於地域和熱度的推薦算法 204

7.4 實例21:創建一個基於地域和熱度的酒店推薦系統 206

∣7.4.1 了解實現思路 206

∣7.4.2 準備數據 207

∣7.4.3 選擇算法 207

∣7.4.4 模型訓練 207

∣7.4.5 效果評估 210

∣7.5 其他上下文信息 210

7.6 知識導圖 210

第8章 基於點擊率預估的推薦 212

8.1 傳統推薦算法的局限和應用 212

∣8.1.1 傳統推薦算法的局限 212

∣8.1.2 傳統推薦算法的應用 213

8.2 點擊率預估在推薦系統中的應用 214

8.3 集成學習 214

∣8.3.1 集成學習概述 215

∣8.3.2 Boosting算法(提升法) 215

∣8.3.3 Bagging算法(自助法) 216

∣8.3.4 Stacking算法(融合法) 217

8.4 導數、偏導數、方嚮導數、梯度 217

∣8.4.1 導數 217

∣8.4.2 偏導數 217

∣8.4.3 方嚮導數 218

∣8.4.4 梯度 219

∣8.4.5 梯度下降 219

8.5 GBDT算法 222

∣8.5.1 Gradient Boosting方法 223

∣8.5.2 決策樹 223

∣8.5.3 GBDT算法的原理 224

8.6 實例22:基於GBDT算法預估電信客戶流失 227

∣8.6.1 了解實現思路 227

∣8.6.2 準備數據 229

∣8.6.3 選擇算法 232

∣8.6.4 模型訓練 232

∣8.6.5 效果評估 234

8.7 回歸分析 236

∣8.7.1 什麼是回歸分析 236

∣8.7.2 回歸分析算法分類 236

∣8.8 Logistic Regression算法 237

∣8.8.1 Sigmoid函數 237

∣8.8.2 LR為什麼要使用Sigmoid函數 239

∣8.8.3 LR的算法原理分析 240

8.9 實例23:基於LR算法預估電信客戶流失 241

∣8.9.1 準備數據 242

∣8.9.2 選擇算法 242

∣8.9.3 模型訓練 242

∣8.9.4 效果評估 243

8.10 GBDT+LR的模型融合 245

∣8.10.1 GBDT+LR模型融合概述 245

∣8.10.2 為什麼選擇GBDT和LR進行模型融合 246

∣8.10.3 GBDT+LR模型融合的原理 246

8.11 實例24:基於GBDT和LR算法預估電信客戶流失 247

∣8.11.1 準備數據 247

∣8.11.2 選擇算法 247

∣8.11.3 模型訓練 247

∣8.11.4 效果評估 248

8.12 知識導圖 251

第9章 推薦系統中的冷啟動 252

9.1 冷啟動介紹 252

∣9.1.1 冷啟動的分類 252

∣9.1.2 冷啟動的幾種實現方法 252

9.2 基於熱門數據推薦實現冷啟動 253

9.3 利用用戶註冊信息實現冷啟動 254

∣9.3.1 註冊信息分析 254

∣9.3.2 實例25:分析Book-Crossings數據集中的共性特徵 255

∣9.3.3 實現原理 261

9.4 利用用戶上下文信息實現冷啟動 261

∣9.4.1 設備信息特徵 262

∣9.4.2 時間地域信息特徵 262

∣9.4.3 實現原理 262

9.5 利用第三方數據實現冷啟動 263

9.6 利用用戶和系統之間的交互實現冷啟動 263

∣9.6.1 實現原理 263

∣9.6.2 推薦系統中實時交互的應用 265

∣9.6.3 實例26:用戶實時交互推薦系統設計 266

9.7 利用物品的內容屬性實現冷啟動 267

∣9.7.1 物品內容屬性分析 267

∣9.7.2 物品信息的使用 268

9.8 利用專家標註數據實現冷啟動 269

9.9 知識導圖 270

第10章 推薦系統中的效果評估 271

10.1 用戶調研 271

10.2 在線評估 272

10.3 在線實驗方式——ABTest 272

∣10.3.1 ABTest介紹 272

∣10.3.2 ABTest流程 272

∣10.3.3 ABTest的注意事項 273

10.4 在線評估指標 274

∣10.4.1 點擊率 275

∣10.4.2 轉化率 275

∣10.4.3 網站成交額 275

10.5 離線評估 276

10.6 拆分數據集 276

∣10.6.1 留出法 277

∣10.6.2 K-折交叉驗證法 277

∣10.6.3 自助法 277

∣10.6.4 實例27:使用sklearn包中的train_test_split()函數進行數據集拆分 278

∣10.6.5 實例28:使用sklearn包中的KFold()函數產生交叉驗證數據集 280

∣10.6.6 實例29:使用sklearn包中的cross_validate()函數演示交叉驗證 281

10.7 離線評估指標 282

∣10.7.1 準確度指標之預測分類準確度指標 282

∣10.7.2 實例30:使用sklearn包中的metrics類預測分類準確度 288

∣10.7.3 準確度指標之預測評分準確度指標 290

∣10.7.4 實例31:使用sklearn包中的metrics類預測評分準確度 290

∣10.7.5 準確度指標之預測評分關聯指標 291

∣10.7.6 準確度指標之排序準確度指標 292

∣10.7.7 非準確度指標 292

10.8 知識導圖 296

 

第3篇 推薦系統實例

 

∣第11章 實例32:搭建一個新聞推薦系統 298

11.1 準備數據 298

11.2 預處理數據 298

∣11.2.1 原始數據加工 298

∣11.2.2 新聞熱度值計算 299

∣11.2.3 新聞相似度計算 300

∣11.2.4 指定標籤下的新聞統計 302

11.3 設計架構 303

11.4 實現系統 304

∣11.4.1 準備環境 304

∣11.4.2 實現後端接口 304

∣11.4.3 實現前端界面 309

∣11.4.4 系統演示 309

11.5 代碼復現 311

∣11.5.1 安裝依賴 311

∣11.5.2 數據入庫 312

∣11.5.3 修改配置 312

∣11.5.4 項目啟動 312

11.6 知識導圖 312

第12章 實例33:搭建一個音樂推薦系統 314

12.1 準備數據 314

12.2 預處理數據 314

∣12.2.1 計算歌曲、歌手、用戶相似度 314

∣12.2.2 計算用戶推薦集 315

∣12.2.3 數據導入數據庫 319

12.3 設計架構 321

12.4 實現系統 322

∣12.4.1 準備環境 322

∣12.4.2 實現後端接口 322

∣12.4.3 實現前端界面 324

∣12.4.4 系統演示 324

12.5 代碼復現 327

∣12.5.1 安裝依賴 327

∣12.5.2 數據入庫 327

∣12.5.3 修改配置 327

∣12.5.4 項目啟動 328

12.6 知識導圖 328

第13章 實例34:搭建一個圖書推薦系統 329

13.1 準備數據 329

13.2 預處理數據 329

∣13.2.1 原始數據加工 329

∣13.2.2 數據導入數據庫 331

∣13.2.3 模型準備 331

13.3 設計架構 332

13.4 實現系統 333

∣13.4.1 準備環境 333

∣13.4.2 實現後端接口 333

∣13.4.3 實現前端界面 336

∣13.4.4 系統演示 336

13.5 代碼復現 338

13.6 知識導圖 338

第14章 業界推薦系統架構介紹 340

14.1 概述 340

14.2 架構介紹 340

14.3 召回內容 342

14.4 計算排序 343

∣14.4.1 特徵工程 343

∣14.4.2 特徵分類 343

∣14.4.3 排序算法 343

14.5 物品過濾和展示 344

∣14.5.1 物品過濾 344

∣14.5.2 物品展示 344

14.6 效果評估 344

14.7 知識導圖 345