Haralambos (Babis) Marmanis 博士是一個把機器學習技術應用於工業界的先行者,也是供應管理的世界級專傢。Dmitry Babenko曾經為銀行、保險、供應鏈管理與商務智能公司設計過應用與基礎架構。
本書擁有者可以通過 www.manning.com/AlgorithmsoftheIntelligentWeb在綫獲得作者的信息、樣例代碼與免費的電子版本。
Dr. Haralambos (Babis) Marmanis is a pioneer in the adoption of machine learning techniques for industrial solutions, and also a world expert in supply management. He has about twenty years of experience in developing professional software. Currently, he is the director of R&D and chief architect, for expense management solutions, at Emptoris, Inc. Babis holds a Ph.D. in applied mathematics from Brown University, an M.S. degree in theoretical and applied mechanics from the University of Illinois at Urbana-Champaign, and B.S. and M.S. degrees in civil engineering from the Aristotle University of Thessaloniki in Greece. He was the recipient of the Sigma Xi award for innovative research in 2000, and he is the author of numerous publications in peer-reviewed international scientific journals, conferences, and technical periodicals.
Dmitry Babenko is the lead for the data warehouse infrastructure at Emptoris, Inc. He is a software engineer and architect with 13 years of experience in the IT industry. He has designed and built a wide variety of applications and infrastructure frameworks for banking, insurance, supply-chain management, and business intelligence companies. He received a M.S. degree in computer science from Belarussian State University of Informatics and Radioelectronics.
前言 XV
緻謝 XIX
關於本書 XXI
1 什麼是智能Web? 1
1.1 智能Web應用實例 3
1.2 智能應用的基本要素 4
1.3 什麼應用會受益於智能? 5
1.3.1 社交網絡 6
1.3.2 Mashup 7
1.3.3 門戶網站 8
1.3.4 維基 9
1.3.5 文件分享網站 9
1.3.6 網絡遊戲 11
1.4 如何構建智能應用? 11
1.4.1 檢查功能和數據 12
1.4.2 獲取更多的數據 12
1.5 機器學習、數據挖掘及其他 16
1.6 智能應用中八個常見的誤區 17
1.6.1 誤區1:數據是可靠的 18
1.6.2 誤區2:計算能馬上完成 19
1.6.3 誤區3:不用考慮數據規模 19
1.6.4 誤區4:不考慮解決方案的可擴展性 19
1.6.5 誤區5:隨處使用同樣的方法 19
1.6.6 誤區6:總是能知道計算時間 20
1.6.7 誤區7:復雜的模型更好 20
1.6.8 誤區8:存在無偏見的模型 20
1.7 小結 20
1.8 參考資料 21
2 搜索 22
2.1 用Lucene實現搜索 23
2.1.1 理解Lucene代碼 24
2.1.2 搜索的基本步驟 31
2.2 為什麼搜索不僅僅是索引? 33
2.3 用鏈接分析改進搜索結果 35
2.3.1 PageRank簡介 35
2.3.2 計算PageRank嚮量 37
2.3.3 alpha:網頁間跳轉的影響 38
2.3.4 理解冪方法 40
2.3.5 結閤索引分值和PageRank分值 45
2.4 根據用戶點擊改進搜索結果 47
2.4.1 用戶點擊初探 48
2.4.2 樸素貝葉斯分類器的使用 50
2.4.3 整閤Lucene索引、PageRank和用戶點擊 54
2.5 Word、PDF等無鏈接文檔的排序 58
2.5.1 DocRank算法簡介 58
2.5.2 DocRank的原理 60
2.6 大規模實現的有關問題 65
2.7 用戶得到瞭想要的結果嗎?精確度和查全率 67
2.8 總結 69
2.9 To Do 70
2.10 參考資料 72
3 推薦係統 73
3.1 一個在綫音樂商店:基本概念 74
3.1.1 距離與相似度的概念 75
3.1.2 走近相似度的計算 80
3.1.3 什麼纔是最好的相似度計算公式? 83
3.2 推薦引擎是怎麼工作的 84
3.2.1 基於相似用戶的推薦 85
3.2.2 基於相似條目的推薦 94
3.2.3 基於內容的推薦 98
3.3 推薦朋友、文章與新聞報道 104
3.3.1 MyDiggSpace.com簡介 105
3.3.2 發現朋友 106
3.3.3 DiggDelphi的內部工作機製 108
3.4 像Netflix.com那樣推薦電影 114
3.4.1 電影數據集的介紹及推薦器 114
3.4.2 數據標準化與相關係數 117
3.5 大規模的實現與評估 123
3.6 總結 124
3.7 To Do 125
3.8 參考資料 127
4 聚類:事物的分組 128
4.1 聚類的需求 129
4.1.1 網站中的用戶組:案例研究 129
4.1.2 用SQL order by子句分組 131
4.1.3 用數組排序分組 132
4.2 聚類算法概述 135
4.2.1 基於分組結構的聚類算法分類 136
4.2.2 基於數據類型和結構的聚類算法分類 137
4.2.3 根據數據規模的聚類算法分類 137
4.3 基於鏈接的算法 138
4.3.1 樹狀圖:基本的聚類數據結構 139
4.3.2 基於鏈接的算法概況 141
4.3.3 單鏈接算法 142
4.3.4 平均鏈接算法 144
4.3.5 最小生成樹算法 147
4.4 k-means算法 149
4.4.1 初識k-means算法 150
4.4.2 k-means的內部原理 151
4.5 魯棒的鏈接型聚類(ROCK) 153
4.5.1 ROCK簡介 154
4.5.2 為什麼ROCK這麼強大? 154
4.6 DBSCAN 159
4.6.1 基於密度的算法簡介 159
4.6.2 DBSCAN的原理 162
4.7 超大規模數據聚類 165
4.7.1 計算復雜性 166
4.7.2 高維度 167
4.8 總結 168
4.9 To Do 169
4.10 參考資料 171
5 分類:把事物放到它該在的地方 172
5.1 對分類的需求 173
5.2 分類器的概述 177
5.2.1 結構分類算法 178
5.2.2 統計分類算法 180
5.2.3 分類器的生命周期 181
5.3 郵件的自動歸類與垃圾郵件過濾 182
5.3.1 樸素貝葉斯分類 184
5.3.2 基於規則的分類 197
5.4 用神經網絡做欺詐檢測 210
5.4.1 交易數據中關於欺詐檢測的一個用例 210
5.4.2 神經網絡概覽 212
5.4.3 一個可用的神經網絡欺詐檢測器 214
5.4.4 神經網絡欺詐檢測器剖析 218
5.4.5 創建通用神經網絡的基類 226
5.5 你的結果可信嗎? 232
5.6 大數據集的分類 235
5.7 總結 237
5.8 To Do 239
5.9 參考資料 242
6 分類器組閤 244
6.1 信貸價值:分類器組閤案例研究 246
6.1.1 數據的簡要說明 247
6.1.2 為真實問題生成人工數據 250
6.2 用單分類器做信用評估 255
6.2.1 樸素貝葉斯的基準綫 255
6.2.2 決策樹基準綫 258
6.2.3 神經網絡的基準綫 260
6.3 在同一個數據集中比較多個分類器 263
6.3.1 McNemar檢驗 264
6.3.2 差額比例檢驗 266
6.3.3 Cochran Q檢驗與F檢驗 268
6.4 bagging: bootstrap聚閤(bootstrap aggregating) 270
6.4.1 bagging實例 272
6.4.2 bagging分類器底層細節 274
6.4.3 分類器集成 276
6.5 boosting:一種迭代提高的方法 279
6.5.1 boosting分類器實例 280
6.5.2 boosting分類器底層細節 282
6.6 總結 286
6.7 To Do 288
6.8 參考資料 292
7 智能技術大匯集:一個智能新聞門戶 293
7.1 功能概覽 295
7.2 獲取並清洗內容 296
7.2.1 各就位、預備、開抓! 296
7.2.2 搜索預備知識迴顧 298
7.2.3 一個抓取並處理好的新聞數據集 299
7.3 搜索新聞 301
7.4 分配新聞類彆 304
7.4.1 順序問題 304
7.4.2 使用NewsProcessor類進行分類 309
7.4.3 分類器 310
7.4.4 分類策略:超越底層的分類 313
7.5 用NewsProcessor類創建新聞分組 316
7.5.1 聚類全部文章 317
7.5.2 在一個新聞類彆中聚類文章 321
7.6 基於用戶評分的動態內容展示 325
7.7 總結 328
7.8 To Do 329
7.9 參考資料 333
附錄A BeanShell簡介 334
A.1 什麼是BeanShell? 334
A.2 為什麼使用BeanShell? 335
A.3 運行BeanShell 335
A.4 參考資料 336
附錄B 網絡采集 337
B.1 爬蟲組件概況 337
B.1.1 采集的步驟 338
B.1.2 我們的簡單爬蟲 338
B.1.3 開源Web爬蟲 339
B.2 參考資料 340
附錄C 數學知識迴顧 341
C.1 嚮量和矩陣 341
C.2 距離的度量 342
C.3 高級矩陣方法 344
C.4 參考資料 344
附錄D 自然語言處理 345
D.1 參考資料 347
附錄E 神經網絡 348
E.1 參考資料 349
索引 350
· · · · · · (
收起)
本書涵蓋瞭五類重要的智能算法:搜索、推薦、聚類、分類和分類器組閤,並結閤具體的案例討論瞭它們在Web應用中的角色及要注意的問題。除瞭第1章的概要性介紹以及第7章對所有技術的整閤應用外,第2~6章以代碼示例的形式分彆對這五類算法進行瞭介紹。
本書麵嚮的是廣大普通讀者,特彆是對算法感興趣的工程師與學生,所以對於讀者的知識背景並沒有過多的要求。本書中的例子和思想應用廣泛,所以對於希望從業務角度更好地理解有關技術的技術經理、産品經理和管理層來說,本書也有一定的價值。