gds.beta.pipeline.nodeClassification.train: Target property not found

216 Views Asked by At

Using Neo4j v4.4 and GDS 2.0. I'm trying to train a model. When I type:

CALL gds.beta.pipeline.nodeClassification.train('individual-graph', {
   pipeline: 'pipe',
   nodeLabels: ['PERSON'],
   modelName: 'xmen-model-fastRP',
   targetProperty: 'is_risky',
   metrics: ['F1_WEIGHTED','ACCURACY'],
   randomSeed: 2
   }) YIELD modelInfo
  RETURN
  modelInfo.bestParameters AS winningModel,
  modelInfo.metrics.F1_WEIGHTED.outerTrain AS trainGraphScore,
  modelInfo.metrics.F1_WEIGHTED.test AS testGraphScore

I get the following error message: Failed to invoke procedure gds.beta.pipeline.nodeClassification.train: Caused by: java.lang.IllegalArgumentException: Target property is_risky not found in graph with node properties: [[embedding]]

What am I doing wrong? Can you help please?

1

There are 1 best solutions below

2
On

It means that the property 'is_risky' is not found in the node PERSON. The only existing property is embedding.

Going thru the example in the neo4j documentation (https://neo4j.com/docs/graph-data-science/current/machine-learning/nodeclassification-pipelines/) will give you an idea of what the error is. Below is an example of a similar issue that you are getting.

Target property `my_class` not found in graph 
with node properties: [[sizePerStory, class], [sizePerStory]]

As you can see, the algorithm will give you a list of properties available for prediction.