我可以使用什么算法来计算在某个时间点之前看到的正面或负面帖子的数量?
What algorithm can I use to compute number of say positive or negative postings seen until a certain timepoint?
我想检查一下我的理解和下面提出的算法是否正确。
为了计算我在时间点 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
看来您正在处理时间序列。
对于时间序列,我建议滚动总和或滚动加权平均值,有一个例子 here
下面是一些 Python 代码示例,使用循环和递归以及数据示例(事件指示器和纪元时间戳)
# 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
我想检查一下我的理解和下面提出的算法是否正确。 为了计算我在时间点 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
看来您正在处理时间序列。
对于时间序列,我建议滚动总和或滚动加权平均值,有一个例子 here
下面是一些 Python 代码示例,使用循环和递归以及数据示例(事件指示器和纪元时间戳)
# 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