我想检查一下我的理解和下面提出的算法是否正确。为了计算我在时间点之前看到的正帖子数量 ti,我提出一个循环如下:
总和 = 0对于 x = 0 直到 x = ti
sumofPi = sumofPi + Pi-1
我不确定这是否可行,但这个想法是能够总结数据流中某个时间点内出现的积极帖子。
谢谢
只要事件按顺序编制索引,并且您可以轻松地丢失同时发生但由于该限制而索引不同的事件,序列似乎很好。您可能还希望解决过帐类型筛选问题。
你在 Python 中的算法:
# Sample data
postingevents=[1,0,1,1,0,1]
# Algorithm:
sumofPi = 0
ti=4
for i in range(0,ti):
sumofPi += postingevents[i]
print(sumofPi)
3
看起来您正在处理时间序列。
对于时间序列,我建议滚动总和或滚动加权平均值,这里有一个例子
下面是一些使用循环和递归的数据示例(事件指示器和纪元时间戳(
# Data sample:
postingevents=[1,0,1,1,0,1]
postingti=[1497634668,1497634669,1497634697,1497634697,1497634714,1497634718]
postings=([postingevents,postingti])
# All events preceeding time stamp T. Events do not need to be ordered by time.
def sumpi_notordered(X,t):
return sum([xv if yv<=t else 0 for (xv,yv) in zip(X[0],X[1])])
# Sum ordered events indexed by T, using recursion.
def sumpi_ordered(X,t):
if t>=1:
return X[t]+sumpi_ordered(X,t-1)
else:
return(X[t])
print(sumpi_notordered(postings,1497634697))
3
print(sumpi_ordered(postingevents,3))
3