我试图找到事件发生前n-1,n-2,... n-5小时的预测的平均误差。我的数据的一行“行”如下所示: 注意:_id是time_collected。
{'_id': 5pm,
'value_at_time_collected': 72,
'predictions': [
{'prediction': 77, 'time': 6pm},
...
{'prediction': 79, 'time': 10pm},
]
}
使用一个聚合,我可以得出时间差并隔离预测:
pipeline1 = [
{ "$unwind" : "$predictions" },
{ "$project" :
{
"timeDiff" : { "$subtract": ["$predictions.time", "$t_id"]},
"madeFor" : "$predictions.time",
"_id":0,
"estimate": "$predictions.prediction"
}}]
list(col.aggregate(pipeline3))
导致数据集如:
[{u'estimate': 77.60785714285714,
u'madeFor': datetime.datetime(2015, 10, 28, 0, 0),
u'timeDiff': 3600000L}, ... ]
但我仍然需要将这些与相应的“time_collected”相匹配来计算错误,即
`$subtract[prediction,value_at_time_collected]`
我该怎么做?