closes apache/incubator-predictionio-template-recommender#17
diff --git a/src/main/scala/ALSModel.scala b/src/main/scala/ALSModel.scala
index afec745..6318b5e 100644
--- a/src/main/scala/ALSModel.scala
+++ b/src/main/scala/ALSModel.scala
@@ -5,8 +5,8 @@
import org.example.recommendation.ALSAlgorithmParams
-import org.apache.predictionio.controller.IPersistentModel
-import org.apache.predictionio.controller.IPersistentModelLoader
+import org.apache.predictionio.controller.PersistentModel
+import org.apache.predictionio.controller.PersistentModelLoader
import org.apache.predictionio.data.storage.BiMap
import org.apache.spark.SparkContext
@@ -20,7 +20,7 @@
val userStringIntMap: BiMap[String, Int],
val itemStringIntMap: BiMap[String, Int])
extends MatrixFactorizationModel(rank, userFeatures, productFeatures)
- with IPersistentModel[ALSAlgorithmParams] {
+ with PersistentModel[ALSAlgorithmParams] {
def save(id: String, params: ALSAlgorithmParams,
sc: SparkContext): Boolean = {
@@ -48,7 +48,7 @@
}
object ALSModel
- extends IPersistentModelLoader[ALSAlgorithmParams, ALSModel] {
+ extends PersistentModelLoader[ALSAlgorithmParams, ALSModel] {
def apply(id: String, params: ALSAlgorithmParams,
sc: Option[SparkContext]) = {
new ALSModel(
diff --git a/src/main/scala/Engine.scala b/src/main/scala/Engine.scala
index 20a5521..bbec828 100644
--- a/src/main/scala/Engine.scala
+++ b/src/main/scala/Engine.scala
@@ -1,6 +1,6 @@
package org.example.recommendation
-import org.apache.predictionio.controller.IEngineFactory
+import org.apache.predictionio.controller.EngineFactory
import org.apache.predictionio.controller.Engine
case class Query(
@@ -21,7 +21,7 @@
score: Double
) extends Serializable
-object RecommendationEngine extends IEngineFactory {
+object RecommendationEngine extends EngineFactory {
def apply() = {
new Engine(
classOf[DataSource],
diff --git a/src/main/scala/Evaluation.scala b/src/main/scala/Evaluation.scala
index e0eebe1..acc85ff 100644
--- a/src/main/scala/Evaluation.scala
+++ b/src/main/scala/Evaluation.scala
@@ -24,12 +24,11 @@
// If there is no positive results, Precision is undefined. We don't consider this case in the
// metrics, hence we return None.
if (positives.size == 0) {
- return None
+ None
+ } else {
+ val tpCount: Int = p.itemScores.take(k).filter(is => positives(is.item)).size
+ Some(tpCount.toDouble / math.min(k, positives.size))
}
-
- val tpCount: Int = p.itemScores.take(k).filter(is => positives(is.item)).size
-
- Some(tpCount.toDouble / math.min(k, positives.size))
}
}