ML Algorithms in Neo4j

Hi all,

I have a little knowledge on Neo4j and I know Python programming.I want to run a Linear Regression model with my graph data.I was told that Algorithms can run as procedures in Neo4j if it was deployed in as Plugins.The ML code or Procedures has to be written only in JAVA but i have no JAVA knowledge.

So is there any other way to run a ML model in Neo4j?If it can be done only with the plugins,is there any particular way to implement it(any reference would be helpful)

Thanks in Advance

There are some models now built into the graph data science library (esp. GraphSage) but more models including regression and classification are coming in Q1.

If you don't want to wait you can see if these work for you:

https://towardsdatascience.com/graphs-and-linear-regression-734d1446e9cd

It kind of depends on what type of ML model you would like to use. For example, the Graph Data Science library has some common things like K Nearest Neighbors or one hot encoding and a variety of Similarity Algorithms (cosine similarity, Jaccard similarity, Euclidean distance, etc.). But more more variety of algorithms (think scikit-learn, TensorFlow, etc.), it might be more efficient to calculate Node Embeddings through any one of a few different GDS-supported approaches and then read this into Python, R, etc. for doing the actual modeling.

In general, it is a good idea to do as much as possible within Neo4j and then export the results to your ML programming language of choice. How much you can achieve with the built-in functions in GDS depends on your specific use case.

1 Like