首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >时间序列预测中的训练机器学习模型

时间序列预测中的训练机器学习模型
EN

Stack Overflow用户
提问于 2020-01-21 14:52:49
回答 2查看 1.3K关注 0票数 0

我需要用scikit训练一个模型--学会预测房间里人少的可能的时间。

下面是我的数据集的样子:

代码语言:javascript
运行
复制
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时至3时30分”

我可以用什么算法来解决这个问题,以及如何实现这个目标?或者,除了本工具包学习之外,还有其他Python库可以用于此目的吗?

我刚开始机器学习,很抱歉有个幼稚的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-28 09:32:23

首先,时间序列预测是建立在现值或多或少取决于过去的理论基础之上的。例如,在2019年到12:29 12:48:10的人口中,有80人必须对12:46:10、12:44:20或以前的人口数产生强烈的影响,并与过去的数值相关联。如果没有,则最好使用其他算法进行预测。

scikit软件包中包含了各种模块作为机器学习算法,其中大部分是专门针对分类算法的。我认为,如果您的日期没有被确定为时间序列的类型,那么分类算法肯定能满足您的需求。实际上,scikit也有一些回归模块,尽管我认为这似乎不适合时间序列数据的预测。

对于时间序列数据的预测,RNN或LSTM算法(深度学习)已经得到了广泛的应用,但scikit没有给出它的内建算法。因此,您最好学习Tensorflow或Pytorch框架,它们是使您能够构建RNN或LSTM模型的常用工具。

票数 1
EN

Stack Overflow用户

发布于 2020-01-21 15:21:24

SciKitLearn模型不识别时间戳,因此您必须将时间戳列分解为多个特性,即。如果你需要30分钟的精确性,那么你将不得不从PeopleCount列中聚合数据,即。记录每隔30分钟内的平均人数、最少人数或最大人数.这可能是一个好主意,也创建滞后的功能,即。在以前的时隙里,甚至在2,3或n个时隙里,人们算什么。

一旦你准备好了你的时间特征和标签(相应的人数),你就可以开始用标准的方式训练你的模型了:

  • 将您的数据分成训练集和验证集,
  • 训练您想要尝试并比较结果的每个模型。

任何回归者都应该适合这一任务。岭,拉索,DecisionTreeRegressor,SVR等。但是,如果你需要从给定的范围中得到最佳的时隙,你将需要对范围内的每一个时隙进行预测,并选择一个符合标准的时隙,尽管在某些情况下,最小的预测值并不比你所比较的值小。

如果你没有得到满意的结果与回归,即。每当均方误差或中位平方误差过高时,您都可以提出一个分类案例,即。而不是训练一个回归者来预测人数,你可以训练一个分类器来预测计数是否大于50。

解决这个问题有很多种方法。一旦尝试不同的模型并检查结果,您将找到优化的方法,参数,工程师的特点,前处理输入等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59843700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档