设置训练算法的时间段
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 ...
此致。
我想在训练推荐算法时设置一个具体的时间,比如:我只想训练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 ...
此致。