python - 使用 scikit learn 训练机器学习模型以进行时间序列预测

标签 python machine-learning scikit-learn

我需要使用 scikit-learn 训练一个模型来预测房间内人数较少的可能时间。

这是我的数据集的样子:

Time                          PeopleCount
---------------------------------------------
2019-12-29 12:40:10               50
2019-12-29 12:42:10               30
2019-12-29 12:44:10               10
2019-12-29 12:46:10               10
2019-12-29 12:48:10               80
and so on...

此数据的有效期为 30 天。

模型训练完成后,我将查询模型以获取上午 10 点到晚上 8 点之间房间里的人数可能会减少的时间。我期望机器学习模型能够以 30 分钟的精度做出响应,即。 “下午 3.00 至下午 3.30”

我可以使用什么算法来解决这个问题以及如何实现目标?或者除了 SciKit-Learn 之外还有其他 Python 库可以用于此目的吗?

我是机器学习新手,很抱歉问了一个天真的问题。

最佳答案

首先,时间序列预测的理论基础是当前值或多或少取决于过去值。例如,截至 2019 年 12 月 29 日 12:48:10 的人数为 80,必须对 12:46:10、12:44:20 或之前时间的人数产生强烈影响,与过去的人数相关值(value)观。如果没有,您最好使用其他算法进行预测。

虽然 scikit 包包含各种机器学习算法模块,但其中大多数专门针对分类算法。我认为如果你的日期没有被识别为时间序列类型的话,分类算法肯定能满足你的需求。实际上,scikit 也有一些回归模块,尽管我认为这似乎不太适合时间序列数据的预测。

在时间序列数据的预测中,RNN或LSTM算法(深度学习)已被广泛使用,但scikit没有提供其内置算法。因此,您最好学习 Tensorflow 或 Pytorch 框架,它们是帮助您构建 RNN 或 LSTM 模型的常用工具。

关于python - 使用 scikit learn 训练机器学习模型以进行时间序列预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59843700/

相关文章:

python - scikit-learn SelectPercentile TFIDF 数据特征缩减

python - 为什么 KMeans 集群标签与 set random_state 并不总是相同?

scikit-learn - 为什么在 GaussianNB [scikit-learn] 中使用对数概率估计?

python - 带 ColumnTransformer 的 SKLearn 管道 : 'numpy.ndarray' object has no attribute 'lower'

python - 如何在 Ubuntu 上安装 lxml

python - 静态 HTML + Flask + Gunicorn 在本地工作;推到 heroku 时中断

python pandas 删除系列中的重复项

python - 如何处理 ValueError?

machine-learning - 如何调整权重——反向传播

python - TypeError : Level type mismatch: 0. 2.将数据拆分为训练集、验证集和测试集时