推薦系統開發實戰

推薦系統開發實戰

作者: 高陽團
出版社: 電子工業
出版在: 2019-07-01
ISBN-13: 9787121365201
ISBN-10: 7121365200




內容描述


過程完整:從基本原理到實際項目開發 實例豐富:將理論學習落實到具體實踐(共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




相關書籍

管理數學與 Python:數據分析的必修課

作者 何宗武

2019-07-01

深度學習 -- 最佳入門邁向 AI 專題實戰

作者 陳昭明

2019-07-01

Python 絕技:運用 Python 成為頂級駭客 (Violent Python : A Cookbook for Hacker, Forensic Analysis, Penetration Testers and Security Engineers)

作者 奧科羅 (TJ O'Connor)

2019-07-01