import numpy as np
import matplotlib.pyplot as plt
import datetime
import random
base = datetime.datetime.today()
numdays = 100
date_list = [base - datetime.timedelta(days=x) for x in range(numdays)]
num_of_peaks = 5
max_of_peak = 5000
peaks = [random.randint(0, max_of_peak) for x in range(num_of_peaks)]
all_data = []
for p in peaks:
all_data.extend(np.random.normal(p, p//10, size=numdays//num_of_peaks))
print(all_data)
plt.plot(date_list, all_data)
plt.show()
1条答案
按热度按时间vxqlmq5t1#
如果我们想要构建一个玩具数据集,基于我们对Covid的了解,我们可以使它类似于具有任意峰值的高斯趋势。我们可以使用numpy.random.normal来生成此数据。
某些参数必须强制设置:
1.生成数据的天数。
1.最大值可以达到峰值(我们不想有100亿次传染!)
1.峰值数量(可选)。
我举的例子真的很简单,但我认为它可以代表我们在这次大流行期间所经历的不可预测性,以满足“可变增量不固定”的要求。
以下是几乎完全随机生成的3个可能结果的图像:
对我手工输入的参数进行干预可能是有意义的,以使高斯图更平滑一点,得到更像鼻窦状的图案。但再说一次,这完全是一个玩具数据集。