Skip to content

Commit 88d56d1

Browse files
committed
Rename feature proc + yieldColumn in NC pipelines
Needed to extract the featurePipelineDescription.
1 parent 114d9f4 commit 88d56d1

File tree

18 files changed

+82
-53
lines changed

18 files changed

+82
-53
lines changed

alpha/alpha-proc/src/main/java/org/neo4j/gds/ml/linkmodels/pipeline/LinkPredictionPipeline.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package org.neo4j.gds.ml.linkmodels.pipeline;
2121

22+
import org.neo4j.gds.config.ToMapConvertible;
2223
import org.neo4j.gds.ml.linkmodels.pipeline.linkFeatures.LinkFeatureStep;
2324
import org.neo4j.gds.ml.linkmodels.pipeline.logisticRegression.LinkLogisticRegressionTrainConfig;
2425
import org.neo4j.gds.ml.pipeline.Pipeline;
@@ -48,6 +49,15 @@ public LinkPredictionPipeline copy() {
4849
return copied;
4950
}
5051

52+
53+
@Override
54+
protected Map<String, List<Map<String, Object>>> featurePipelineDescription() {
55+
return Map.of(
56+
"nodePropertySteps", ToMapConvertible.toMap(nodePropertySteps),
57+
"featureSteps", ToMapConvertible.toMap(featureSteps)
58+
);
59+
}
60+
5161
@Override
5262
protected Map<String, Object> additionalEntries() {
5363
return Map.of(

alpha/alpha-proc/src/main/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipeline.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package org.neo4j.gds.ml.nodemodels.pipeline;
2121

22+
import org.neo4j.gds.config.ToMapConvertible;
2223
import org.neo4j.gds.ml.nodemodels.logisticregression.NodeLogisticRegressionTrainCoreConfig;
2324
import org.neo4j.gds.ml.pipeline.Pipeline;
2425

@@ -44,6 +45,15 @@ public NodeClassificationPipeline copy() {
4445
return copied;
4546
}
4647

48+
49+
@Override
50+
protected Map<String, List<Map<String, Object>>> featurePipelineDescription() {
51+
return Map.of(
52+
"nodePropertySteps", ToMapConvertible.toMap(nodePropertySteps),
53+
"featureProperties", ToMapConvertible.toMap(featureSteps)
54+
);
55+
}
56+
4757
@Override
4858
protected Map<String, Object> additionalEntries() {
4959
return Map.of(

alpha/alpha-proc/src/main/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineAddStepProcs.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ public Stream<PipelineInfoResult> addNodeProperty(
5353
));
5454
}
5555

56-
@Procedure(name = "gds.alpha.ml.pipeline.nodeClassification.addFeatures", mode = READ)
56+
@Procedure(name = "gds.alpha.ml.pipeline.nodeClassification.selectFeatures", mode = READ)
5757
@Description("Add one or several features to an existing node classification pipeline.")
58-
public Stream<PipelineInfoResult> addFeatures(
58+
public Stream<PipelineInfoResult> selectFeatures(
5959
@Name("pipelineName") String pipelineName,
6060
@Name("nodeProperties") Object nodeProperties
6161
) {
62-
return Stream.of(NodeClassificationPipelineAddSteps.addFeatures(modelCatalog, username(), pipelineName, nodeProperties));
62+
return Stream.of(NodeClassificationPipelineAddSteps.selectFeatures(modelCatalog, username(), pipelineName, nodeProperties));
6363
}
6464
}

alpha/alpha-proc/src/main/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineAddSteps.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public static PipelineInfoResult addNodeProperty(
4444
return new PipelineInfoResult(pipelineName, pipeline);
4545
}
4646

47-
public static PipelineInfoResult addFeatures(
47+
public static PipelineInfoResult selectFeatures(
4848
ModelCatalog modelCatalog,
4949
String username,
5050
String pipelineName,

alpha/alpha-proc/src/main/java/org/neo4j/gds/ml/nodemodels/pipeline/PipelineInfoResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
public class PipelineInfoResult {
3030
public final String name;
3131
public final List<Map<String, Object>> nodePropertySteps;
32-
public final List<String> featureSteps;
32+
public final List<String> featureProperties;
3333
public final Map<String, Object> splitConfig;
3434
public final Object parameterSpace;
3535

@@ -40,7 +40,7 @@ public class PipelineInfoResult {
4040
.stream()
4141
.map(ExecutableNodePropertyStep::toMap)
4242
.collect(Collectors.toList());
43-
this.featureSteps = info.featureProperties();
43+
this.featureProperties = info.featureProperties();
4444
this.splitConfig = info.splitConfig().toMap();
4545
this.parameterSpace = info.trainingParameterSpace()
4646
.stream()

alpha/alpha-proc/src/test/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineAddStepsTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,21 @@ void shouldAddNodePropertyStep() {
7777
"name", "gds.pageRank.mutate",
7878
"config", Map.of("mutateProperty", "pr")
7979
)));
80-
assertThat(result.featureSteps).isEqualTo(List.of());
80+
assertThat(result.featureProperties).isEqualTo(List.of());
8181
assertThat(result.parameterSpace).isEqualTo(DEFAULT_PARAM_CONFIG);
8282
});
8383
}
8484

8585
@Test
86-
void shouldAddFeatureSteps() {
86+
void shouldSelectFeatures() {
8787
run(caller -> {
88-
NodeClassificationPipelineAddSteps.addFeatures(
88+
NodeClassificationPipelineAddSteps.selectFeatures(
8989
modelCatalog,
9090
getUsername(),
9191
"myPipeline",
9292
"test"
9393
);
94-
var result = NodeClassificationPipelineAddSteps.addFeatures(
94+
var result = NodeClassificationPipelineAddSteps.selectFeatures(
9595
modelCatalog,
9696
getUsername(),
9797
"myPipeline",
@@ -100,7 +100,7 @@ void shouldAddFeatureSteps() {
100100
assertThat(result.name).isEqualTo("myPipeline");
101101
assertThat(result.splitConfig).isEqualTo(DEFAULT_CONFIG.toMap());
102102
assertThat(result.nodePropertySteps).isEqualTo(List.of());
103-
assertThat(result.featureSteps).isEqualTo(List.of("test", "pr", "pr2"));
103+
assertThat(result.featureProperties).isEqualTo(List.of("test", "pr", "pr2"));
104104
assertThat(result.parameterSpace).isEqualTo(DEFAULT_PARAM_CONFIG);
105105
});
106106
}
@@ -161,7 +161,7 @@ void failOnUnexpectedConfigKeysInNodePropertyStepConfig() {
161161
}
162162

163163
@Test
164-
void shouldAddNodeAndFeatureSteps() {
164+
void shouldAddNodeAndSelectFeatureProperties() {
165165
run(caller -> {
166166
NodeClassificationPipelineAddSteps.addNodeProperty(
167167
modelCatalog,
@@ -171,13 +171,13 @@ void shouldAddNodeAndFeatureSteps() {
171171
"pageRank",
172172
Map.of("mutateProperty", "pr")
173173
);
174-
NodeClassificationPipelineAddSteps.addFeatures(
174+
NodeClassificationPipelineAddSteps.selectFeatures(
175175
modelCatalog,
176176
getUsername(),
177177
"myPipeline",
178178
"pr"
179179
);
180-
var result = NodeClassificationPipelineAddSteps.addFeatures(
180+
var result = NodeClassificationPipelineAddSteps.selectFeatures(
181181
modelCatalog,
182182
getUsername(),
183183
"myPipeline",
@@ -190,7 +190,7 @@ void shouldAddNodeAndFeatureSteps() {
190190
"name", "gds.pageRank.mutate",
191191
"config", Map.of("mutateProperty", "pr")
192192
)));
193-
assertThat(result.featureSteps).isEqualTo(List.of("pr", "pr2"));
193+
assertThat(result.featureProperties).isEqualTo(List.of("pr", "pr2"));
194194
assertThat(result.parameterSpace).isEqualTo(DEFAULT_PARAM_CONFIG);
195195
});
196196
}
@@ -226,7 +226,7 @@ void shouldAddTwoNodePropertySteps() {
226226
"config", Map.of("mutateProperty", "pr2")
227227
))
228228
);
229-
assertThat(result.featureSteps).isEqualTo(List.of());
229+
assertThat(result.featureProperties).isEqualTo(List.of());
230230
assertThat(result.parameterSpace).isEqualTo(DEFAULT_PARAM_CONFIG);
231231
});
232232
}
@@ -247,7 +247,7 @@ void shouldThrowIfPipelineDoesntExistForNodePropertyStep() {
247247

248248
@Test
249249
void shouldThrowIfPipelineDoesntExistForFeatureStep() {
250-
assertThatThrownBy(() -> NodeClassificationPipelineAddSteps.addFeatures(
250+
assertThatThrownBy(() -> NodeClassificationPipelineAddSteps.selectFeatures(
251251
modelCatalog,
252252
getUsername(),
253253
"ceci n'est pas une pipe",
@@ -327,7 +327,7 @@ void shouldThrowIfAddingFeatureToANonPipeline() {
327327
);
328328

329329
modelCatalog.set(model1);
330-
run(caller -> assertThatThrownBy(() -> NodeClassificationPipelineAddSteps.addFeatures(
330+
run(caller -> assertThatThrownBy(() -> NodeClassificationPipelineAddSteps.selectFeatures(
331331
modelCatalog,
332332
getUsername(),
333333
"testModel1",

alpha/alpha-proc/src/test/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineConfigureParamsProcTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ void shouldSetParams() {
5353
"name", "myPipeline",
5454
"splitConfig", DEFAULT_SPLIT_CONFIG,
5555
"nodePropertySteps", List.of(),
56-
"featureSteps", List.of(),
56+
"featureProperties", List.of(),
5757
"parameterSpace", List.of(Map.of(
5858
"maxEpochs", 100,
5959
"minEpochs", 42,
@@ -76,7 +76,7 @@ void shouldOnlyKeepLastOverride() {
7676
"myPipeline",
7777
"splitConfig", DEFAULT_SPLIT_CONFIG,
7878
"nodePropertySteps", List.of(),
79-
"featureSteps", List.of(),
79+
"featureProperties", List.of(),
8080
"parameterSpace", List.of(Map.of(
8181
"maxEpochs", 100,
8282
"minEpochs", 4,

alpha/alpha-proc/src/test/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineConfigureSplitProcTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void shouldOverrideSingleSplitField() {
5656
"name", "myPipeline",
5757
"splitConfig", expectedSplitConfig,
5858
"nodePropertySteps", List.of(),
59-
"featureSteps", List.of(),
59+
"featureProperties", List.of(),
6060
"parameterSpace", DEFAULT_PARAM_CONFIG
6161
))
6262
);
@@ -75,7 +75,7 @@ void shouldOnlyKeepLastOverride() {
7575
"name", "myPipeline",
7676
"splitConfig", expectedSplitConfig,
7777
"nodePropertySteps", List.of(),
78-
"featureSteps", List.of(),
78+
"featureProperties", List.of(),
7979
"parameterSpace", DEFAULT_PARAM_CONFIG
8080
))
8181
);

alpha/alpha-proc/src/test/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineCreateTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void createPipeline() {
5757
var result = NodeClassificationPipelineCreate.create(modelCatalog, getUsername(), "myPipeline");
5858
assertThat(result.name).isEqualTo("myPipeline");
5959
assertThat(result.nodePropertySteps).isEqualTo(List.of());
60-
assertThat(result.featureSteps).isEqualTo(List.of());
60+
assertThat(result.featureProperties).isEqualTo(List.of());
6161
assertThat(result.splitConfig).isEqualTo(NodeClassificationPipelineCompanion.DEFAULT_SPLIT_CONFIG);
6262
assertThat(result.parameterSpace).isEqualTo(DEFAULT_PARAM_CONFIG);
6363

@@ -70,7 +70,7 @@ void createPipeline() {
7070
"modelType", PIPELINE_MODEL_TYPE,
7171
"featurePipeline", Map.of(
7272
"nodePropertySteps", List.of(),
73-
"featureSteps", List.of()
73+
"featureProperties", List.of()
7474
),
7575
"splitConfig", NodeClassificationPipelineCompanion.DEFAULT_SPLIT_CONFIG,
7676
"trainingParameterSpace", DEFAULT_PARAM_CONFIG

alpha/alpha-proc/src/test/java/org/neo4j/gds/ml/nodemodels/pipeline/NodeClassificationPipelineIntegrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ void trainWithNodePropertyStepsAndFeatures() {
120120
" relationshipWeightProperty: 'w'" +
121121
"})");
122122
// let's try both list and single string syntaxes
123-
runQuery("CALL gds.alpha.ml.pipeline.nodeClassification.addFeatures('p', 'a')");
124-
runQuery("CALL gds.alpha.ml.pipeline.nodeClassification.addFeatures('p', ['b', 'deg'])");
123+
runQuery("CALL gds.alpha.ml.pipeline.nodeClassification.selectFeatures('p', 'a')");
124+
runQuery("CALL gds.alpha.ml.pipeline.nodeClassification.selectFeatures('p', ['b', 'deg'])");
125125

126126
runQuery("CALL gds.alpha.ml.pipeline.nodeClassification.configureSplit('p', {" +
127127
" testFraction: 0.2, " +

0 commit comments

Comments
 (0)