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