All Downloads are FREE. Search and download functionalities are using the official Maven repository.

itemrank.Data.scala Maven / Gradle / Ivy

/** Copyright 2014 TappingStone, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */

package io.prediction.engines.itemrank

import io.prediction.controller.WithPrId

import io.prediction.engines.util
import io.prediction.engines.base

import com.github.nscala_time.time.Imports._

case class Query(
    val uid: String,
    val iids: Seq[String] // items to be ranked
    ) extends Serializable {
  override def toString = s"[${uid}, ${iids}]"
}

// prediction output
case class Prediction(
  // the ranked iid with score
    val items: Seq[(String, Double)],
    val isOriginal: Boolean = false
  ) extends Serializable with WithPrId {
  override def toString = s"${items}"
}

case class Actual(
    // actual items the user has performed actions on
    // deprecated
    val iids: Seq[String] = null,

    // (uid, iid, action) - tuple
    val actionTuples: Seq[(String, String, base.U2IActionTD)],

    // other data that maybe used by metrics.
    val previousActionCount: Int = -1,
    val localDate: LocalDate = new LocalDate(0),
    val localDateTime: LocalDateTime = new LocalDateTime(0),
    val averageOrderSize: Double = -1,
    val previousOrders: Int = -1,
    val variety: Int = -1
  ) extends Serializable {
  override def toString = s"A: [${actionTuples.size}] (${actionTuples.take(3)}, ...)"
}

/*
class MetricResult(
  val testStartUntil: Tuple2[DateTime, DateTime],
  val baselineMean: Double,
  val baselineStdev: Double,
  val algoMean: Double,
  val algoStdev: Double
) extends Serializable

class MultipleMetricResult(
  val baselineMean: Double,
  val baselineStdev: Double,
  val algoMean: Double,
  val algoStdev: Double
) extends Serializable {
  override def toString = s"baselineMean=${baselineMean} " +
    s"baselineStdDev=${baselineStdev} " +
    s"algoMean=${algoMean} " +
    s"algoStdev=${algoStdev}"
}
*/




© 2015 - 2024 Weber Informatics LLC | Privacy Policy