tsfresh具有多个时间序列的多元时间序列预测

时间:2018-09-01 15:05:02

标签: python pandas machine-learning feature-extraction feature-selection

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

1)我不仅要对Google股票进行预测,而且要对各种股票(例如一组科技股票)进行预测。因此,只有一个模型能够对整个股票集进行预测。

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])]))

其中full_data是一个扁平化的数据框,具有以下列:日期,stock_id和一些时间序列(高,低等)

0 个答案:

没有答案