python - 预测时间序列数据中的多个特征(使用键)
问题描述
我有一个过去 2 年多用户活动的数据集。我的问题是预测一个给定的人在不久的将来可能会做什么样的活动。
例如:
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 上使用机器学习来解决这个问题?
什么算法最适合这类问题?
解决方案
任何(时间序列分析)tsa 算法都适用于您的问题陈述,但首先
1.您需要清理数据并将其以算法可以学习的格式提供。
2.您可以创建一个具有两列或多列的熊猫数据框,首先是包含所有日期、时间和第二列的索引,第二列将有一个向量/数字,表示从第三列开始数据集中的活动,您可以保留值不同列中的不同用户
|---------------------|------------------|
| index | data_user1 |
|---------------------|------------------|
| date | activity_label |
|---------------------|------------------|
3.要将您的活动转换为矢量/数字,您可以使用标签编码器
4.估算数据集中缺失的时间戳。
5.使用任何 tsa 算法,无论是带有 LSTM/NN 的滑动窗口方法还是来自 statsmodels.tsa 的预实现算法
我建议您使用 ARIMA/SARIMA,如果您的日期格式正确,只需编写这 3 行即可。
model=statsmodels.api.tsa.SARIMAX(train_df,order=(1,0,1),seasonal_order=(1,1,0,24))
model = model.fit()
model.predict()
推荐阅读
- gnuplot - 绘制多个文件以产生多个输出
- javascript - 将多个图像复制/粘贴到 ClipboardData(剪贴板 API)
- powershell - Powershell 中集群计划任务的每月触发器
- c# - C#:如何将数据从主文件发送到另一个文件并将它们影响到构造函数参数?
- php - LARAVEL:我想从另一个表中导入信息并将其添加到注册表单
- python - 使用 Selenium 抓取 Google Scholar 时提取 .text 会返回一个空字符串
- azure-devops - 用于评论的 Azure Boards 扩展,如树
- python - 如果条目满足特定条件python,则绘制函数
- daml - 如何对 daml 分类帐进行基准测试?
- reactjs - React js Unhandled Rejection (TypeError): t[l].data.map is not a function