From 5e4a672b5a00ad0f10cd882d4e1283ee5ceb633c Mon Sep 17 00:00:00 2001 From: scorebot Date: Mon, 9 Dec 2024 15:04:38 -0800 Subject: [PATCH] Fix the defect of modelChain with Output --- .../scala/org/pmml4s/model/MiningModel.scala | 3 +- .../org/pmml4s/model/MiningModelTest.scala | 84 +++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) diff --git a/src/main/scala/org/pmml4s/model/MiningModel.scala b/src/main/scala/org/pmml4s/model/MiningModel.scala index 3d4ecb7..030d66c 100644 --- a/src/main/scala/org/pmml4s/model/MiningModel.scala +++ b/src/main/scala/org/pmml4s/model/MiningModel.scala @@ -143,6 +143,7 @@ class MiningModel( case ResultFeature.probability => x._2.value.foreach(y => { probabilities += (y -> x._1.toDouble) }) + case _ => } }) outputs.probabilities = probabilities.toMap @@ -151,7 +152,7 @@ class MiningModel( if (outputs.probabilities.nonEmpty && outputs.predictedValue == null) { outputs.evalPredictedValueByProbabilities() } - result(series, outputs) + result(last, outputs) } else last } case method => { diff --git a/src/test/scala/org/pmml4s/model/MiningModelTest.scala b/src/test/scala/org/pmml4s/model/MiningModelTest.scala index dcd4c34..d558f22 100644 --- a/src/test/scala/org/pmml4s/model/MiningModelTest.scala +++ b/src/test/scala/org/pmml4s/model/MiningModelTest.scala @@ -89,4 +89,88 @@ class MiningModelTest extends BaseModelTest { assert(r(2) === 0.5555556666666667) assert(r(3) === 3) } + + test("a modelChain model with Output") { + val model = Model.fromString( + """ + | + |
+ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + |""".stripMargin) + assert(model.predict(Map("X" -> "A"))("predictedValueFinal") === 110.0) + assert(model.predict(Map("X" -> "B"))("predictedValueFinal") === -110.0) + } }