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