Graph algorithms for Machine Learning

Is Machine Learning (ML) a type of problem that can be treated 100% in a graph?
In the book "Graph Algorithms" by Mark Needham, at chapter "Using Graph Algorithms to Enhance ML", data stored in neo4j is read to spark using the createDataFrame method that has a cypher query as a parameter.
This way of performing ML is no more than a tradicional way missing the whole point of the chapter, where one would expect to have real graph based algorithms to perform ML.
Is there any way to do ML using only Cypher manipulations of data without the use of a Python or other language external library ?

What we were showing in that chapter is what we've seen most Neo users doing i.e. improving their classic ML pipelines by adding graph features.

Re: pure graph approaches - sometimes the Label Propagation Algorithm is considered a type of Machine Learning. People have different opinions as to whether it should count as ML.

And then graph embeddings is another technique. We don't have anything production ready in Neo for that yet, but have done some experiments.

And if you want to do graph based neural nets, have a look at


Thank you Mark for answering my question. I'll have a look at the site you pointed out.


Hello Mark,

i've been working on a thesis about performing Reinforcement Learning based on Neo4J. I want to share the final document with you, and if possible, have your comments.