代码之家  ›  专栏  ›  技术社区  ›  XyledMonkey

多时间序列的tsfresh多元时间序列预测

  •  0
  • XyledMonkey  · 技术社区  · 6 年前

    我希望使用tsfresh库对一个多时间序列的多变量时间序列预测问题进行特征选择。我的问题与 https://github.com/blue-yonder/tsfresh/blob/master/notebooks/timeseries_forecasting_google_stock.ipynb ,但进行了一些调整(我在链接问题的上下文中列出了这些调整)。

    1)与其只对谷歌股票进行预测,我更愿意对各种股票(例如一组科技股)进行预测。因此,将有一个单一的模型能够对整套股票做出预测。

    2)我不只是预测下一个时间点(比如股票明天的表现如何),而是预测下一周/两周/等等股票的上涨幅度。

    3)我想包括来自其他股票的数据(可能像是每个股票的一些预定义集)用于特征选择。

    4)我希望使用所有的值(高、低等),而不是仅仅使用高值作为特性。

    我试着用tsfresh实现它,但失败了。能做到吗?如果可以,怎么做?下面是我编写的用滚动方法计算自己特性的代码

    def get_past_days_features(row, var, daysback):
    if 'rainfall' in var:
        rainfall_df = mean_rainfall_unstacked
        rainfall_df.date = pd.to_datetime(rainfall_df.date, dayfirst = True)
        gov_data = rainfall_df[rainfall_df.gov_iso == row.gov_iso].set_index('date')
        x_days_date = row.date - pd.to_timedelta(daysback, unit='d')
        relevant_gov_data = gov_data.loc[(gov_data.index >= x_days_date) & (gov_data.index < row.date)].sort_index()
        return (pd.Series([np.mean(relevant_gov_data[var]), np.max(relevant_gov_data[var]), kurtosis(relevant_gov_data[var])]))        
    else:  
        gov_data = case_death_rainfall_data[case_death_rainfall_data.gov_iso == row.gov_iso].set_index('date')
        x_days_date = row.date - pd.to_timedelta(daysback, unit='d')
        relevant_gov_data = gov_data.loc[(gov_data.index >= x_days_date) & (gov_data.index < row.date)].sort_index()
        return (pd.Series([np.mean(relevant_gov_data[var]), np.max(relevant_gov_data[var]), kurtosis(relevant_gov_data[var])]))
    

    其中,完整数据是一个扁平的数据框架,包含列:日期、股票ID和一些时间序列(高、低等)。

    0 回复  |  直到 6 年前