作 者:(英)馬克·尼達姆,(美)埃米·E.霍德勒 著 唐富年 譯
定 價:79
出 版 社:人民郵電出版社
出版日期:2020年09月01日
頁 數:212
裝 幀:平裝
ISBN:9787115546678
1.圖算法為構建智能應用程序提供了快速建模的框架,有助於更準確、更快速地做出預測;2.本書作者是Neo4j公司開發者關繫工程師,Neo4j認證專家,在圖分析領域深耕多年;3.本書基於Spark和Neo4j講解路徑查找算法、中心性算法、社團發現算法等近20種常用的圖算法;4.書中實例豐富,商品推薦和欺詐檢測在內的許多人工智能問題能轉換為圖論問題。莎士比亞曾說,世界是一個大舞臺。在今天看來,世界是一張大圖!將人物和事件視作節點,將節點之間的關繫連成線,我們就能將錯綜復雜的關繫網絡轉化為圖,等
●序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.2ApacheSpark26
3.2.3Neo4j圖平臺28
3.3小結30
第4章路徑查找算法和圖搜索算法31
4.1示例數據:交通圖33
4.1.1將數據導入Spark35
4.1.2將數據導入Neo4j36
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將數據導入Spark67
5.1.2將數據導入Neo4j67
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.5PageRank算法83
5.5.1影響力84
5.5.2PageRank算法公式84
5.5.3迭代、隨機衝浪者和等級沉沒85
5.5.4何時使用PageRank算法86
5.5.5使用Spark實現PageRank算法87
5.5.6使用Neo4j實現PageRank算法88
5.5.7PageRank算法變體:個性化PageRank算法90
5.6小結91
第6章社團發現算法92
6.1示例數據:軟件依賴圖94
6.1.1將數據導入Spark96
6.1.2將數據導入Neo4j97
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.6Louvain模塊度算法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.1Yelp社交網絡124
7.1.2導入數據124
7.1.3圖模型125
7.1.4Yelp數據概覽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.4SFO的糟糕一天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將數據導入Neo4j162
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
圖分析可以揭示復雜繫統和大規模網絡的運作機制,圖算法為構建智能應用程序提供了快速建模的框架,有助於更準確、更快速地做出預測。包括商品推薦和欺詐檢測在內的許多人工智能問題能轉換為圖論問題。本書基於Spark和Neo4j講解近20種常用的圖算法,幫助讀者拓展重要圖分析類型的相關知識和能力,更快速地發現數據中的模式並找到更優的解決方案。
(英)馬克·尼達姆,(美)埃米·E.霍德勒 著 唐富年 譯
馬克·尼達姆(Mark Needham)Neo4j公司開發者關繫工程師,Neo4j認證專家,曾深度參與Neo4j因果集群的開發工作。馬克致力於幫助客戶運用圖數據庫,善於針對富有挑戰性的數據問題構建綜合的解決方案。埃米·E. 霍德勒(Amy E. Hodler)Neo4j公司圖分析與人工智能項目總監,熱愛網絡科學,在圖分析項目的開發和運營方面有著豐富的經驗,曾成功帶領團隊為EDS、微軟、惠普等公司創造新的商機。