《數據分析之圖算法基於Spark和Neo4j》是2020年人民郵電出版社出版的圖書。
基本介紹
- 中文名:數據分析之圖算法基於Spark和Neo4j
- 作者:(英)馬克·尼達姆//(美)埃米·E.霍德勒
- 出版社:人民郵電出版社
- 出版時間:2020年
- ISBN:9787115546678
內容簡介,圖書目錄,作者簡介,
內容簡介
圖分析可以揭示複雜系統和大規模網路的運作機制,圖算法為構建智慧型應用程式提供了快速建模的框架,有助於更準確、更快速地做出預測。包括商品推薦和欺詐檢測在內的許多人工智慧問題能轉換為圖論問題。本書基於Spark和Neo4j講解近20種常用的圖算法,幫助讀者拓展重要圖分析類型的相關知識和能力,更快速地發現數據中的模式並找到更優的解決方案。
圖書目錄
序 xi
前言 xiii
第 1章 導論 1
1.1 何謂圖 1
1.2 何謂圖分析和圖算法 3
1.3 圖處理、圖資料庫、圖查詢和圖算法 5
1.4 為何要關心圖算法 6
1.5 圖分析用例 9
1.6 小結 10
第 2章 圖論及其概念 11
2.1 術語 11
2.2 圖的類型和結構 12
2.3 圖的種類 14
2.3.1 連通圖與非連通圖 14
2.3.2 無權圖與加權圖 15
2.3.3 無向圖與有向圖 16
2.3.4 無環圖與有環圖 17
2.3.5 稀疏圖與稠密圖 18
2.3.6 單部圖、二部圖和k部圖 19
2.4 圖算法的類型 21
2.4.1 路徑查找 21
2.4.2 中心性 21
2.4.3 社團發現 22
2.5 小結 22
第3章 圖平台和圖處理 23
3.1 圖平台和圖處理的注意事項 23
3.1.1 平台注意事項 23
3.1.2 處理注意事項 24
3.2 典型平台 25
3.2.1 選擇平台 25
3.2.2 Apache Spark 26
3.2.3 Neo4j圖平台 28
3.3 小結 30
第4章 路徑查找算法和圖搜尋算法 31
4.1 示例數據:交通圖 33
4.1.1 將數據導入Spark 35
4.1.2 將數據導入Neo4j 36
4.2 廣度優先搜尋 36
4.3 深度優先搜尋 38
4.4 短路徑算法 40
4.4.1 何時使用短路徑算法 41
4.4.2 使用Neo4j實現短路徑算法 41
4.4.3 使用Neo4j實現加權短路徑算法 43
4.4.4 使用Spark實現加權短路徑算法 44
4.4.5 短路徑算法的變體:A*算法 46
4.4.6 短路徑算法的變體:Yen的k短路徑算法 48
4.5 所有點對短路徑算法 49
4.5.1 近觀所有點對短路徑算法 50
4.5.2 何時使用所有點對短路徑算法 51
4.5.3 使用Spark實現所有點對短路徑算法 51
4.5.4 使用Neo4j實現所有點對短路徑算法 52
4.6 單源短路徑算法 53
4.6.1 何時使用單源短路徑算法 54
4.6.2 使用Spark實現單源短路徑算法 55
4.6.3 使用Neo4j實現單源短路徑算法 57
4.7 小生成樹算法 57
4.7.1 何時使用小生成樹算法 58
4.7.2 使用Neo4j實現小生成樹算法 59
4.8 隨機遊走算法 61
4.8.1 何時使用隨機遊走算法 61
4.8.2 使用Neo4j實現隨機遊走算法 61
4.9 小結 63
第5章 中心性算法 64
5.1 示例數據:社交圖 66
5.1.1 將數據導入Spark 67
5.1.2 將數據導入Neo4j 67
5.2 度中心性算法 68
5.2.1 可達性 68
5.2.2 何時使用度中心性算法 69
5.2.3 使用Spark實現度中心性算法 69
5.3 接近中心性算法 70
5.3.1 何時使用接近中心性算法 71
5.3.2 使用Spark實現接近中心性算法 72
5.3.3 使用Neo4j實現接近中心性算法 74
5.3.4 接近中心性算法變體:Wasserman & Faust算法 75
5.3.5 接近中心性算法變體:調和中心性算法 77
5.4 中間中心性算法 78
5.4.1 橋與控制點 78
5.4.2 計算中間中心性得分 79
5.4.3 何時使用中間中心性算法 79
5.4.4 使用Neo4j實現中間中心性算法 80
5.4.5 中間中心性算法變體:RA-Brandes算法 82
5.5 PageRank算法 83
5.5.1 影響力 84
5.5.2 PageRank算法公式 84
5.5.3 疊代、隨機衝浪者和等級沉沒 85
5.5.4 何時使用PageRank算法 86
5.5.5 使用Spark實現PageRank算法 87
5.5.6 使用Neo4j實現PageRank算法 88
5.5.7 PageRank算法變體:個性化PageRank算法 90
5.6 小結 91
第6章 社團發現算法 92
6.1 示例數據:軟體依賴圖 94
6.1.1 將數據導入Spark 96
6.1.2 將數據導入Neo4j 97
6.2 三角形計數和聚類係數 97
6.2.1 局部聚類係數 97
6.2.2 全局聚類係數 98
6.2.3 何時使用三角形計數和聚類係數 98
6.2.4 使用Spark實現三角形計數算法 99
6.2.5 使用Neo4j實現三角形計數算法 99
6.2.6 使用Neo4j計算局部聚類係數 100
6.3 強連通分量算法 101
6.3.1 何時使用強連通分量算法 102
6.3.2 使用Spark實現強連通分量算法 102
6.3.3 使用Neo4j實現強連通分量算法 103
6.4 連通分量算法 106
6.4.1 何時使用連通分量算法 106
6.4.2 使用Spark實現連通分量算法 106
6.4.3 使用Neo4j實現連通分量算法 107
6.5 標籤傳播算法 108
6.5.1 半監督學習和種子標籤 110
6.5.2 何時使用標籤傳播算法 110
6.5.3 使用Spark實現標籤傳播算法 110
6.5.4 使用Neo4j實現標籤傳播算法 111
6.6 Louvain模組度算法 113
6.6.1 通過模組度進行基於質量的分組 114
6.6.2 何時使用Louvain模組度算法 117
6.6.3 使用Neo4j實現Louvain模組度算法 118
6.7 驗證社團 122
6.8 小結 122
第7章 圖算法實戰 123
7.1 使用Neo4j分析Yelp數據 123
7.1.1 Yelp社交網路 124
7.1.2 導入數據 124
7.1.3 圖模型 125
7.1.4 Yelp數據概覽 125
7.1.5 行程規劃應用程式 129
7.1.6 旅遊商務諮詢 134
7.1.7 查找相似類別 138
7.2 使用Spark分析航班數據 142
7.2.1 探索性分析 144
7.2.2 熱門機場 144
7.2.3 源自ORD的延誤 145
7.2.4 SFO的糟糕一天 147
7.2.5 通過航空公司互連的機場 149
7.3 小結 154
第8章 使用圖算法增強機器學習 155
8.1 機器學習和上下文的重要性 155
8.2 關聯特徵提取與特徵選擇 157
8.2.1 圖特徵 158
8.2.2 圖算法特徵 158
8.3 圖與機器學習實踐:連結預測 160
8.3.1 工具和數據 161
8.3.2 將數據導入Neo4j 162
8.3.3 合著者關係圖 163
8.3.4 創建均衡的訓練數據集和測試數據集 164
8.3.5 如何預測缺失連結 169
8.3.6 創建機器學習管道 170
8.3.7 預測連結:基本圖特徵 171
8.3.8 預測連結:三角形和聚類係數 181
8.3.9 預測連結:社團發現 184
8.4 小結 190
8.5 總結 190
附錄 額外信息及資料 191
關於作者 195
關於封面 195
顯示部分信息
作者簡介
馬克·尼達姆(Mark Needham) Neo4j公司開發者關係工程師,Neo4j認證專家,曾深度參與Neo4j因果集群的開發工作。馬克致力於幫助客戶運用圖資料庫,善於針對富有挑戰性的數據問題構建綜合的解決方案。 埃米·E. 霍德勒(Amy E. Hodler) Neo4j公司圖分析與人工智慧項目總監,熱愛網路科學,在圖分析項目的開發和運營方面有著豐富的經驗,曾成功帶領團隊為EDS、微軟、惠普等公司創造新的商機。