【问题标题】:Normalization of several time-series of different lengths and scale几个不同长度和尺度的时间序列的归一化
【发布时间】:2014-07-31 13:20:05
【问题描述】:

假设我在 numpy 中有几个随机时间序列,例如:

my_time_series = dict()
for L in range(20,50,10):
   scaling = np.random.randint(100)
   my_time_series[L] = scaling * np.random.rand(L) + scaling * np.random.rand(L)

我想规范化它们规模和长度,以便我可以可视化它们并比较随时间的变化。为此,一种方法如下:

  1. 规模中的标准化:应用Z-standarization
  2. 长度标准化:将较短的时间序列拉伸(插值)到最长的时间序列的长度,使它们都具有相同的长度。

动机:我最感兴趣的是比较时间序列在其生命周期内的相对可变性(无论它们有多长)。

我如何在 numpy 中做到这一点?

【问题讨论】:

    标签: python numpy matplotlib scipy


    【解决方案1】:
    y_normed = {k: (data-np.mean(data))/np.std(data) 
                for k, data in my_time_series.items()}
    
    maxlength = max(my_time_series)
    x_interped = {k: np.interp(np.linspace(0, 1, maxlength), 
                               np.linspace(0, 1, k), data) 
                  for k, data in y_normed.items()}
    
    [plot(data) for data in x_interped.values()]
    

    【讨论】:

    • 感谢分享。我们可以将这种方式标准化以预测不同尺度的时间序列吗?
    猜你喜欢
    • 2018-12-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    相关资源
    最近更新 更多