3

我正在使用 AWS 机器学习回归来预测餐厅排队等候的时间,在特定的工作日/时间。今天我有大约 800k 数据。

示例数据:

restaurantID (rowID)weekDay (categorical)time (categorical)tablePeople (numeric)waitingTime (numeric - target)
1                               sun                              21:29                  2                                 23                                            
2                               fri                                 20:13                  4                                 43                                            
...


我有两个问题:

1)我应该将时间用作分类还是数字?最好分成两个字段:分钟和秒?

2)我想在同一个模型中得到我所有餐厅的预测。

示例:我希望发送 rowID 标识符,它会根据每个餐厅数据(忽略其他数据)返回不同的预测。

我试过了,但它对任何 rowID 都返回相同的预测。为什么?

我应该为每家餐厅建立一个模型吗?

4

3 回答 3

2

设置模型的方式存在几个问题

1)你所拥有的时间不应该是绝对的。您的模型将时间 12:29 和 12:30 视为两个完全独立的属性。所以它永远不会使用它在 12:29 了解到的事实来预测 12:30 会发生什么。在您的情况下,您应该将时间设置为数字。不确定 amazon ML 是否可以自动为您转换。如果不只是将小时乘以 60 并添加分钟。另一件有趣的事情是通过选择半小时或更宽的时间间隔来划分你的时间。您可以通过将 (h*60+m) 除以某个数字来执行此操作,具体取决于您想要多少桶。所以尝试 120 来获得 2 小时的间隔。通常,您拥有的数据越多,您可以拥有的间隔就越小。关键是每个桶中有很多样本。

2)您应该真正考虑从输入数据中删除 restaurantID。将它放在那里会导致模型过度拟合它。因此,它将无法根据从 id:3 或 id:9 的餐厅中学到的事实来预测 id:5 的餐厅。如果您有关于每家餐厅的大量数据并且您不关心将您的预测外推到不在训练集中的餐厅,那么拥有餐厅 ID 可能没问题。

3)您永远不会发送 restaurantID 来预测有关它的数据。它通常的工作方式需要选择你想要预测的内容。在您的情况下,“waitingTime”可能是最有用的属性。所以你需要发送weekDay、时间和人数,模型会输出等待时间。

于 2017-02-04T02:42:10.463 回答
1

您应该认为与预测准确相关的是什么,并且您应该使用您的领域专业知识来定义您需要在数据中具有的特征/属性。

例如,一天中的时间,不仅仅是一个数字。根据我对餐厅的有限了解,我会放弃分钟,只关注小时。

我当然会为每家餐厅创建一个模型,因为餐厅的受欢迎程度或它所供应的食物类型会对等待时间产生影响。借助 Amazon ML,您可以轻松创建许多模型,因为您可以使用 SDK 构建模型,甚至可以使用 AWS Lambda 安排模型的重新训练(即自动)。

我不确定名为 tablePeople 的功能是什么意思,但一般建议是拥有尽可能多的相关功能,以获得更好的预测。例如,月份或季节可能也很重要。

于 2017-02-05T22:31:18.590 回答
0

与这篇文章的一些答案相比,我认为resturantID 有帮助,它实际上提供了有价值的信息。如果您每家餐厅都有大量数据,那么您可以为每家餐厅训练一个模型并获得良好的准确性,但如果您没有足够的数据,那么resturantID 会提供非常丰富的信息。

1) 想象一下,如果您的数据集中只有两列:restaurantID 和 waitingTime。那你会不会认为测试数据中的 restaurantID 可以帮助你找到粗略的等待时间?在最简单的实现中,每个 restaurantID 的等待时间将是 waitingTime 的平均值。因此,restaurantID 绝对是一个有价值的信息。现在您的数据集中有了更多特征,您需要检查 restaurantID 是否与其他特征一样有效。

2) 如果您决定保留 restaurantID,则必须将其用作分类字符串。它应该是您数据集中的非参数特征,也许这就是您没有得到正确结果的原因。

关于日期和时间的问题,我同意其他答案,并且考虑到您正在为餐厅构建模型,每小时时间可能会给出更准确的结果。

于 2018-08-07T01:56:43.710 回答