過程完整:從基本原理到實際項目開發(fā) 實例豐富:將理論學習落實到具體實踐(共34個實例)簡潔流暢:采用短段、短句,讀來有順流而下般流暢感實戰(zhàn)性強:搭建新聞推薦系統(tǒng)、音樂推薦系統(tǒng)、圖書推薦系統(tǒng)學習無憂:免費提供書中用到的素材和源代碼后繼服務:讀者可加入本書QQ學習群在線交流
		
	
現(xiàn)就職于京東,任職算法工程師,一直從事于推薦系統(tǒng)相關的研究和開發(fā)工作,對推薦排序、深度學習、強化學習具有濃厚興趣,擅長推薦排序、Spark、深度學習。
?
====第1篇   推薦系統(tǒng)的背景介紹和入門
∣
第1章  走進推薦系統(tǒng)   2
1.1  從“啤酒與尿布”到推薦系統(tǒng)的前世今生   2
∣1.1.1  “啤酒與尿布”   2
∣1.1.2  推薦系統(tǒng)的前世今生   2
1.2  推薦系統(tǒng)可以做什么   4
∣1.2.1  什么是推薦系統(tǒng)   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  數(shù)據(jù)結構   14
∣1.3.3  工程能力   15
1.4  如何學習本書   17
1.5  知識導圖   17
第2章  搭建你的第一個推薦系統(tǒng)   19
2.1  實例1:搭建電影推薦系統(tǒng)   19
∣2.1.1  利用Netflix數(shù)據(jù)集準備數(shù)據(jù)   19
∣2.1.2  使用Python表示數(shù)據(jù)   21
∣2.1.3  選擇相似用戶   23
∣2.1.4  為用戶推薦相似用戶喜歡的電影   24
∣2.1.5  分析效果   25
2.2  總結:搭建推薦系統(tǒng)的一般步驟   26
∣2.2.1  準備數(shù)據(jù)   26
∣2.2.2  選擇算法   27
∣2.2.3  模型訓練   28
∣2.2.4  效果評估   28
2.3  知識導圖   28
第3章  推薦系統(tǒng)常用數(shù)據(jù)集介紹   29
3.1  MovieLens數(shù)據(jù)集   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數(shù)據(jù)集   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數(shù)據(jù)集   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數(shù)據(jù)集   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 數(shù)據(jù)集   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篇   推薦系統(tǒng)涉及的算法介紹、冷啟動和效果評估
∣
第4章  數(shù)據(jù)挖掘——讓推薦系統(tǒng)更懂你   52
4.1  數(shù)據(jù)預處理   52
∣4.1.1  數(shù)據(jù)標準化   52
∣4.1.2  實例2:實現(xiàn)數(shù)據(jù)的標準化   54
∣4.1.3  數(shù)據(jù)離散化   56
∣4.1.4  實例3:基于信息熵的數(shù)據(jù)離散化   58
∣4.1.5  數(shù)據(jù)抽樣   61
∣4.1.6  數(shù)據(jù)降維   63
∣4.1.7  實例4:對鳶尾花數(shù)據(jù)集特征進行降維   66
∣4.1.8  數(shù)據(jù)清理   68
∣4.1.9  相似度計算   71
4.2  數(shù)據(jù)分類   74
∣4.2.1  K最近鄰算法   74
∣4.2.2  實例5:利用KNN算法實現(xiàn)性別判定   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  數(shù)據(jù)聚類   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  關聯(lián)分析   103
∣4.4.1  Apriori算法   103
∣4.4.2  實例12:基于Apriori算法實現(xiàn)頻繁項集和相關規(guī)則挖掘   106
4.5  知識導圖   110
∣
第5章  基于用戶行為特征的推薦   111
5.1  用戶行為分類   111
5.2  基于內容的推薦算法   112
∣5.2.1  算法原理——從“構造特征”到“判斷用戶是否喜歡”   112
∣5.2.2  實例13:對手機屬性進行特征建模   115
5.3  實例14:編寫一個基于內容推薦算法的電影推薦系統(tǒng)   117
∣5.3.1  了解實現(xiàn)思路   117
∣5.3.2  準備數(shù)據(jù)   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算法的電影推薦系統(tǒng)   137
∣5.5.1  了解實現(xiàn)思路   138
∣5.5.2  準備數(shù)據(jù)   138
∣5.5.3  選擇算法   138
∣5.5.4  模型訓練   138
∣5.5.5  效果評估   141
5.6  實例16:編寫一個基于ItemCF算法的電影推薦系統(tǒng)   141
∣5.6.1  了解實現(xiàn)思路   141
∣5.6.2  準備數(shù)據(jù)   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的電影推薦系統(tǒng)   152
∣5.10.1  了解實現(xiàn)思路   152
∣5.10.2  準備數(shù)據(jù)   152
∣5.10.3  選擇算法   154
∣5.10.4  模型訓練   155
∣5.10.5  效果評估   158
5.11  知識導圖   159
∣
第6章  基于標簽的推薦   161
6.1  基于標簽系統(tǒng)的應用   161
∣6.1.1  Last.fm   161
∣6.1.2  Delicious   162
∣6.1.3  豆瓣   163
∣6.1.4  網易云音樂   163
6.2  數(shù)據(jù)標注與關鍵詞提取   165
∣6.2.1  推薦系統(tǒng)中的數(shù)據(jù)標注   165
∣6.2.2  推薦系統(tǒng)中的關鍵詞提取   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  基于標簽的推薦系統(tǒng)   174
∣6.4.1  標簽評分算法   174
∣6.4.2  標簽評分算法改進   176
∣6.4.3  標簽基因   177
∣6.4.4  用戶興趣建模   177
6.5  實例19:利用標簽推薦算法實現(xiàn)藝術家的推薦   178
∣6.5.1  了解實現(xiàn)思路   178
∣6.5.2  準備數(shù)據(jù)   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  推薦系統(tǒng)的實時性   194
∣7.1.4  協(xié)同過濾中的時間因子   195
7.2  實例20:實現(xiàn)一個“增加時間衰減函數(shù)的協(xié)同過濾算法”   197
∣7.2.1  在UserCF算法中增加時間衰減函數(shù)   197
∣7.2.2  在ItemCF算法中增加時間衰減函數(shù)   199
7.3  基于地域和熱度特征的推薦   200
∣7.3.1  為什么要將地域和熱度特征放在一起   201
∣7.3.2  解讀LARS中的地域特征   202
∣7.3.3  基于地域和熱度的推薦算法   204
7.4  實例21:創(chuàng)建一個基于地域和熱度的酒店推薦系統(tǒng)   206
∣7.4.1  了解實現(xiàn)思路   206
∣7.4.2  準備數(shù)據(jù)   207
∣7.4.3  選擇算法   207
∣7.4.4  模型訓練   207
∣7.4.5  效果評估   210
∣7.5  其他上下文信息   210
7.6  知識導圖   210
∣
第8章  基于點擊率預估的推薦   212
8.1  傳統(tǒng)推薦算法的局限和應用   212
∣8.1.1  傳統(tǒng)推薦算法的局限   212
∣8.1.2  傳統(tǒng)推薦算法的應用   213
8.2  點擊率預估在推薦系統(tǒng)中的應用   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  導數(shù)、偏導數(shù)、方向導數(shù)、梯度   217
∣8.4.1  導數(shù)   217
∣8.4.2  偏導數(shù)   217
∣8.4.3  方向導數(shù)   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  了解實現(xiàn)思路   227
∣8.6.2  準備數(shù)據(jù)   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函數(shù)   237
∣8.8.2  LR為什么要使用Sigmoid函數(shù)   239
∣8.8.3  LR的算法原理分析   240
8.9  實例23:基于LR算法預估電信客戶流失   241
∣8.9.1  準備數(shù)據(jù)   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  準備數(shù)據(jù)   247
∣8.11.2  選擇算法   247
∣8.11.3  模型訓練   247
∣8.11.4  效果評估   248
8.12  知識導圖   251
∣
第9章  推薦系統(tǒng)中的冷啟動   252
9.1  冷啟動介紹   252
∣9.1.1  冷啟動的分類   252
∣9.1.2  冷啟動的幾種實現(xiàn)方法   252
9.2  基于熱門數(shù)據(jù)推薦實現(xiàn)冷啟動   253
9.3  利用用戶注冊信息實現(xiàn)冷啟動   254
∣9.3.1  注冊信息分析   254
∣9.3.2  實例25:分析Book-Crossings數(shù)據(jù)集中的共性特征   255
∣9.3.3  實現(xiàn)原理   261
9.4  利用用戶上下文信息實現(xiàn)冷啟動   261
∣9.4.1  設備信息特征   262
∣9.4.2  時間地域信息特征   262
∣9.4.3  實現(xiàn)原理   262
9.5  利用第三方數(shù)據(jù)實現(xiàn)冷啟動   263
9.6  利用用戶和系統(tǒng)之間的交互實現(xiàn)冷啟動   263
∣9.6.1  實現(xiàn)原理   263
∣9.6.2  推薦系統(tǒng)中實時交互的應用   265
∣9.6.3  實例26:用戶實時交互推薦系統(tǒng)設計   266
9.7  利用物品的內容屬性實現(xiàn)冷啟動   267
∣9.7.1  物品內容屬性分析   267
∣9.7.2  物品信息的使用   268
9.8  利用專家標注數(shù)據(jù)實現(xiàn)冷啟動   269
9.9  知識導圖   270
∣
第10章  推薦系統(tǒng)中的效果評估   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  拆分數(shù)據(jù)集   276
∣10.6.1  留出法   277
∣10.6.2  K-折交叉驗證法   277
∣10.6.3  自助法   277
∣10.6.4  實例27:使用sklearn包中的train_test_split()函數(shù)進行數(shù)據(jù)集拆分   278
∣10.6.5  實例28:使用sklearn包中的KFold()函數(shù)產生交叉驗證數(shù)據(jù)集   280
∣10.6.6  實例29:使用sklearn包中的cross_validate()函數(shù)演示交叉驗證   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  準確度指標之預測評分關聯(lián)指標   291
∣10.7.6  準確度指標之排序準確度指標   292
∣10.7.7  非準確度指標   292
10.8  知識導圖   296
∣
===第3篇   推薦系統(tǒng)實例
∣第11章  實例32:搭建一個新聞推薦系統(tǒng)   298
11.1  準備數(shù)據(jù)   298
11.2  預處理數(shù)據(jù)   298
∣11.2.1  原始數(shù)據(jù)加工   298
∣11.2.2  新聞熱度值計算   299
∣11.2.3  新聞相似度計算   300
∣11.2.4  指定標簽下的新聞統(tǒng)計   302
11.3  設計架構   303
11.4  實現(xiàn)系統(tǒng)   304
∣11.4.1  準備環(huán)境   304
∣11.4.2  實現(xiàn)后端接口   304
∣11.4.3  實現(xiàn)前端界面   309
∣11.4.4  系統(tǒng)演示   309
11.5  代碼復現(xiàn)   311
∣11.5.1  安裝依賴   311
∣11.5.2  數(shù)據(jù)入庫   312
∣11.5.3  修改配置   312
∣11.5.4  項目啟動   312
11.6  知識導圖   312
∣
第12章  實例33:搭建一個音樂推薦系統(tǒng)   314
12.1  準備數(shù)據(jù)   314
12.2  預處理數(shù)據(jù)   314
∣12.2.1  計算歌曲、歌手、用戶相似度   314
∣12.2.2  計算用戶推薦集   315
∣12.2.3  數(shù)據(jù)導入數(shù)據(jù)庫   319
12.3  設計架構   321
12.4  實現(xiàn)系統(tǒng)   322
∣12.4.1  準備環(huán)境   322
∣12.4.2  實現(xiàn)后端接口   322
∣12.4.3  實現(xiàn)前端界面   324
∣12.4.4  系統(tǒng)演示   324
12.5  代碼復現(xiàn)   327
∣12.5.1  安裝依賴   327
∣12.5.2  數(shù)據(jù)入庫   327
∣12.5.3  修改配置   327
∣12.5.4  項目啟動   328
12.6  知識導圖   328
∣
第13章  實例34:搭建一個圖書推薦系統(tǒng)   329
13.1  準備數(shù)據(jù)   329
13.2  預處理數(shù)據(jù)   329
∣13.2.1  原始數(shù)據(jù)加工   329
∣13.2.2  數(shù)據(jù)導入數(shù)據(jù)庫   331
∣13.2.3  模型準備   331
13.3  設計架構   332
13.4  實現(xiàn)系統(tǒng)   333
∣13.4.1  準備環(huán)境   333
∣13.4.2  實現(xiàn)后端接口   333
∣13.4.3  實現(xiàn)前端界面   336
∣13.4.4  系統(tǒng)演示   336
13.5  代碼復現(xiàn)   338
13.6  知識導圖   338
∣
第14章  業(yè)界推薦系統(tǒng)架構介紹   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