通过聚合pymongo计算平均误差

时间:2015-10-29 18:46:52

标签: mongodb pymongo

我试图找到事件发生前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]`

我该怎么做?

0 个答案:

没有答案