You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@predictionio.apache.org by sh...@apache.org on 2017/05/11 23:46:23 UTC
incubator-predictionio-template-recommender git commit: closes
apache/incubator-predictionio-template-recommender#17
Repository: incubator-predictionio-template-recommender
Updated Branches:
refs/heads/develop fab31fbfa -> 5cadb5e3b
closes apache/incubator-predictionio-template-recommender#17
Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/commit/5cadb5e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/tree/5cadb5e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/diff/5cadb5e3
Branch: refs/heads/develop
Commit: 5cadb5e3bf67a769f90069a49b2856b62790836a
Parents: fab31fb
Author: Naoki Takezoe <ta...@apache.org>
Authored: Fri May 12 08:45:37 2017 +0900
Committer: Shinsuke Sugaya <sh...@apache.org>
Committed: Fri May 12 08:45:37 2017 +0900
----------------------------------------------------------------------
src/main/scala/ALSModel.scala | 8 ++++----
src/main/scala/Engine.scala | 4 ++--
src/main/scala/Evaluation.scala | 9 ++++-----
3 files changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/blob/5cadb5e3/src/main/scala/ALSModel.scala
----------------------------------------------------------------------
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 @@ package org.apache.spark.mllib.recommendation
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 @@ class ALSModel(
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 @@ class ALSModel(
}
object ALSModel
- extends IPersistentModelLoader[ALSAlgorithmParams, ALSModel] {
+ extends PersistentModelLoader[ALSAlgorithmParams, ALSModel] {
def apply(id: String, params: ALSAlgorithmParams,
sc: Option[SparkContext]) = {
new ALSModel(
http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/blob/5cadb5e3/src/main/scala/Engine.scala
----------------------------------------------------------------------
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 @@ case class ItemScore(
score: Double
) extends Serializable
-object RecommendationEngine extends IEngineFactory {
+object RecommendationEngine extends EngineFactory {
def apply() = {
new Engine(
classOf[DataSource],
http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-recommender/blob/5cadb5e3/src/main/scala/Evaluation.scala
----------------------------------------------------------------------
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 @@ case class PrecisionAtK(k: Int, ratingThreshold: Double = 2.0)
// 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))
}
}