设置训练算法的一段时间

时间:2015-10-21 10:15:49

标签: predictionio

我想设置一个具体的时间训练推荐算法,例如:我只想训练6个月或3个月的数据。 有人知道配置方式还是我必须实现它? 非常感谢你。

2 个答案:

答案 0 :(得分:0)

我们正在研究一种更通用的方法来解决这个问题,但实验分支中有一个引擎会在EventStore中保留一段事件数据并丢弃其余的数据。这是进行培训的最佳方式。我的意思是你需要定期运行这个引擎。 https://github.com/PredictionIO/PredictionIO/tree/develop/examples/experimental/scala-cleanup-app

这将删除包括$ set在内的所有旧事件,因此请注意。如果您设置了一个属性并删除了该事件,则不再设置该属性。

将来我们计划支持事件的TTL,以便事件存储本身自动老化事件。我们还将属性存储在可变存储中以将其从事件流中删除。现在使用清理引擎。

答案 1 :(得分:0)

我发现PredictionIO已经支持这个问题了:

这是我的伪代码:

       def readEventTime(procTime : String) : Option[DateTime] = {
          Option(if (procTime == null || (procTime != null && procTime == "")) null else  DateTimeFormat.forPattern("yyyyMMddHHmmss").parseDateTime(procTime))
       }
       val itemsViewRDD: RDD[(String, Item)] = PEventStore.find(
          appName = dsp.appName,
          startTime = readEventTime(dsp.startTime),
          untilTime = readEventTime(dsp.untilTime)
       )(sc).map ...

问候。