0

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

4

2 回答 2

0

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

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

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

于 2015-10-21T18:29:58.960 回答
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 ...

问候。

于 2015-11-02T03:43:50.677 回答