设置训练算法的时间段

Set a period of time when training algorithm

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

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

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

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

我发现 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 ...

此致。