Muutke küpsiste eelistusi

E-raamat: Graph Algorithms: Practical Examples in Apache Spark and Neo4j

  • Formaat: 268 pages
  • Ilmumisaeg: 16-May-2019
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781492047636
Teised raamatud teemal:
  • Formaat - EPUB+DRM
  • Hind: 56,15 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 268 pages
  • Ilmumisaeg: 16-May-2019
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781492047636
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Discover how graph algorithms can help you leverage the relationships within your data to develop more intelligent solutions and enhance your machine learning models. You’ll learn how graph analytics are uniquely suited to unfold complex structures and reveal difficult-to-find patterns lurking in your data. Whether you are trying to build dynamic network models or forecast real-world behavior, this book illustrates how graph algorithms deliver value—from finding vulnerabilities and bottlenecks to detecting communities and improving machine learning predictions.

This practical book walks you through hands-on examples of how to use graph algorithms in Apache Spark and Neo4j—two of the most common choices for graph analytics. Also included: sample code and tips for over 20 practical graph algorithms that cover optimal pathfinding, importance through centrality, and community detection.

  • Learn how graph analytics vary from conventional statistical analysis
  • Understand how classic graph algorithms work, and how they are applied
  • Get guidance on which algorithms to use for different types of questions
  • Explore algorithm examples with working code and sample datasets from Spark and Neo4j
  • See how connected feature extraction can increase machine learning accuracy and precision
  • Walk through creating an ML workflow for link prediction combining Neo4j and Spark
Preface ix
Foreword xiii
1 Introduction
1(14)
What Are Graphs?
2(1)
What Are Graph Analytics and Algorithms?
3(3)
Graph Processing, Databases, Queries, and Algorithms
6(2)
OLTP and OLAP
7(1)
Why Should We Care About Graph Algorithms?
8(4)
Graph Analytics Use Cases
12(1)
Conclusion
13(2)
2 Graph Theory and Concepts
15(14)
Terminology
15(1)
Graph Types and Structures
16(2)
Random, Small-World, Scale-Free Structures
17(1)
Flavors of Graphs
18(9)
Connected Versus Disconnected Graphs
19(1)
Unweighted Graphs Versus Weighted Graphs
19(2)
Undirected Graphs Versus Directed Graphs
21(1)
Acyclic Graphs Versus Cyclic Graphs
22(1)
Sparse Graphs Versus Dense Graphs
23(1)
Monopartite, Bipartite, and k-Partite Graphs
24(3)
Types of Graph Algorithms
27(1)
Pathfinding
27(1)
Centrality
27(1)
Community Detection
27(1)
Summary
28(1)
3 Graph Platforms and Processing
29(10)
Graph Platform and Processing Considerations
29(2)
Platform Considerations
29(1)
Processing Considerations
30(1)
Representative Platforms
31(6)
Selecting Our Platform
31(1)
Apache Spark
32(3)
Neo4j Graph Platform
35(2)
Summary
37(2)
4 Pathfinding and Graph Search Algorithms
39(38)
Example Data: The Transport Graph
41(4)
Importing the Data into Apache Spark
44(1)
Importing the Data into Neo4j
44(1)
Breadth First Search
45(3)
Breadth First Search with Apache Spark
46(2)
Depth First Search
48(1)
Shortest Path
49(11)
When Should I Use Shortest Path?
50(1)
Shortest Path with Neo4j
51(2)
Shortest Path (Weighted) with Neo4j
53(1)
Shortest Path (Weighted) with Apache Spark
54(2)
Shortest Path Variation: A
56(2)
Shortest Path Variation: Yen's k-Shortest Paths
58(2)
All Pairs Shortest Path
60(5)
A Closer Look at All Pairs Shortest Path
60(2)
When Should I Use All Pairs Shortest Path?
62(1)
All Pairs Shortest Path with Apache Spark
62(1)
All Pairs Shortest Path with Neo4j
63(2)
Single Source Shortest Path
65(5)
When Should I Use Single Source Shortest Path?
67(1)
Single Source Shortest Path with Apache Spark
67(2)
Single Source Shortest Path with Neo4j
69(1)
Minimum Spanning Tree
70(4)
When Should I Use Minimum Spanning Tree?
71(1)
Minimum Spanning Tree with Neo4j
72(2)
Random Walk
74(2)
When Should I Use Random Walk?
74(1)
Random Walk with Neo4j
74(2)
Summary
76(1)
5 Centrality Algorithms
77(32)
Example Graph Data: The Social Graph
79(2)
Importing the Data into Apache Spark
80(1)
Importing the Data into Neo4j
81(1)
Degree Centrality
81(3)
Reach
81(1)
When Should I Use Degree Centrality?
82(1)
Degree Centrality with Apache Spark
83(1)
Closeness Centrality
84(8)
When Should I Use Closeness Centrality?
85(1)
Closeness Centrality with Apache Spark
86(2)
Closeness Centrality with Neo4j
88(1)
Closeness Centrality Variation: Wasserman and Faust
89(2)
Closeness Centrality Variation: Harmonic Centrality
91(1)
Betweenness Centrality
92(7)
When Should I Use Betweenness Centrality?
94(1)
Betweenness Centrality with Neo4j
95(3)
Betweenness Centrality Variation: Randomized-Approximate Brandes
98(1)
PageRank
99(9)
Influence
99(1)
The PageRank Formula
100(2)
Iteration, Random Surfers, and Rank Sinks
102(1)
When Should I Use PageRank?
103(1)
PageRank with Apache Spark
103(2)
PageRank with Neo4j
105(2)
PageRank Variation: Personalized PageRank
107(1)
Summary
108(1)
6 Community Detection Algorithms
109(36)
Example Graph Data: The Software Dependency Graph
112(2)
Importing the Data into Apache Spark
114(1)
Importing the Data into Neo4j
114(1)
Triangle Count and Clustering Coefficient
114(5)
Local Clustering Coefficient
115(1)
Global Clustering Coefficient
116(1)
When Should I Use Triangle Count and Clustering Coefficient?
116(1)
Triangle Count with Apache Spark
117(1)
Triangles with Neo4j
117(1)
Local Clustering Coefficient with Neo4j
118(1)
Strongly Connected Components
119(5)
When Should I Use Strongly Connected Components?
120(1)
Strongly Connected Components with Apache Spark
120(1)
Strongly Connected Components with Neo4j
121(3)
Connected Components
124(3)
When Should I Use Connected Components?
124(1)
Connected Components with Apache Spark
125(1)
Connected Components with Neo4j
126(1)
Label Propagation
127(6)
Semi-Supervised Learning and Seed Labels
129(1)
When Should I Use Label Propagation?
129(1)
Label Propagation with Apache Spark
130(1)
Label Propagation with Neo4j
131(2)
Louvain Modularity
133(9)
When Should I Use Louvain?
137(1)
Louvain with Neo4j
138(4)
Validating Communities
142(1)
Summary
143(2)
7 Graph Algorithms in Practice
145(38)
Analyzing Yelp Data with Neo4j
145(22)
Yelp Social Network
146(1)
Data Import
147(1)
Graph Model
147(1)
A Quick Overview of the Yelp Data
148(4)
Trip Planning App
152(5)
Travel Business Consulting
157(5)
Finding Similar Categories
162(5)
Analyzing Airline Flight Data with Apache Spark
167(16)
Exploratory Analysis
168(1)
Popular Airports
168(2)
Delays from ORD
170(2)
Bad Day at SFO
172(2)
Interconnected Airports by Airline
174(7)
Summary
181(2)
8 Using Graph Algorithms to Enhance Machine Learning
183(42)
Machine Learning and the Importance of Context
183(2)
Graphs, Context, and Accuracy
184(1)
Connected Feature Extraction and Selection
185(5)
Graphy Features
187(1)
Graph Algorithm Features
188(2)
Graphs and Machine Learning in Practice: Link Prediction
190(33)
Tools and Data
191(1)
Importing the Data into Neo4j
192(1)
The Coauthorship Graph
193(1)
Creating Balanced Training and Testing Datasets
194(5)
How We Predict Missing Links
199(2)
Creating a Machine Learning Pipeline
201(1)
Predicting Links: Basic Graph Features
202(11)
Predicting Links: Triangles and the Clustering Coefficient
213(4)
Predicting Links: Community Detection
217(6)
Summary
223(1)
Wrapping Things Up
223(2)
A Additional Information and Resources 225(4)
Index 229
Mark Needham is a graph advocate and Developer Relations Engineer at Neo4j. Mark helps users embrace graphs and Neo4j, building sophisticated solutions to challenging data problems. Mark has deep expertise in graph data having previously helped to build Neo4j's Causal Clustering system. Mark writes about his experiences of being a graphista on a popular blog at markhneedham.com.

Amy Hodler is a network science devotee and AI and Graph Analytics Program Manager at Neo4j. She promotes the use of graph analytics to reveal structures within real-world networks and predict dynamic behavior. Amy helps teams apply novel approaches to generate new opportunities at companies such as EDS, Microsoft, Hewlett-Packard (HP), Hitachi IoT, and Cray Inc. Amy has a love for science and art with a fascination for complexity studies and graph theory.