數據分析之圖算法 基於Spark和Neo4j Graph Algorithms: Practical Examples in Apache Spark and Neo4j

Mark Needham,Amy E. Hodler

  • 數據分析之圖算法 基於Spark和Neo4j-preview-1
  • 數據分析之圖算法 基於Spark和Neo4j-preview-2
數據分析之圖算法 基於Spark和Neo4j-preview-1

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

商品描述

圖分析可以揭示復雜系統和大規模網絡的運作機制,
圖算法為構建智能應用程序提供了快速建模的框架,有助於更準確、更快速地做出預測。
包括商品推薦和欺詐檢測在內的許多人工智能問題能轉換為圖論問題。
本書基於Spark和Neo4j講解近20種常用的圖算法,幫助讀者拓展重要圖分析類型的相關知識和能力,
更快速地發現數據中的模式並找到更優的解決方案。

作者簡介

Mark Needham

Neo4j公司開發者關係工程師,Neo4j認證專家,曾深度參與Neo4j因果集群的開發工作。
馬克致力於幫助客戶運用圖數據庫,善於針對富有挑戰性的數據問題構建綜合的解決方案。

Amy E. Hodler

Neo4j公司圖分析與人工智能項目總監,熱愛網絡科學,在圖分析項目的開發和運營方面有著豐富的經驗,
曾成功帶領團隊為EDS、微軟、惠普等公司創造新的商機。

目錄大綱

序 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