预测时间序列数据中的多个功能(使用键)

时间:2019-05-27 07:14:43

标签: python machine-learning

我有一个过去两年中多个用户活动的数据集。 我的问题是预测给定的人在不久的将来可能会从事何种活动。

例如:

Today is 2019-05-27 
Input should be user_id (ex: 1)

然后它必须产生类似以下的内容:

  • 具有user_id 1的用户可能会在2019-05-30爬山
  • 具有user_id 1的用户可能会在2019-06-02出行

所有这些都应使用用户活动历史记录进行预测。 (每个活动的频率可以不同)

如何在python上使用机器学习解决此问题?

哪种算法最适合此类问题?

1 个答案:

答案 0 :(得分:0)

任何(时间序列分析)tsa算法都可用于您的问题陈述,但首先

1。。您需要清除数据并以算法可以学习的格式进行处理。

2。。您可以创建一个具有两列或更多列的熊猫数据框,第一列将是具有所有日期的索引,时间和第二列将有一个向量/数字,代表您的活动从第三列开始的数据集,您可以将不同用户的值保留在不同的列中 |---------------------|------------------| | index | data_user1 | |---------------------|------------------| | date | activity_label | |---------------------|------------------|

3。。要将活动转换为向量/数字,可以使用标签编码器

4。。估算数据集中缺少的时间戳。

5。。使用任何tsa算法或LSTM / NN的滑动窗口方法或statsmodels.tsa中预先实现的算法

我建议您使用ARIMA / SARIMA,如果您以正确的格式输入日期,则只需编写这三行代码即可。

model=statsmodels.api.tsa.SARIMAX(train_df,order=(1,0,1),seasonal_order=(1,1,0,24))
model = model.fit()
model.predict()