Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS机器学习数据_Amazon Web Services_Machine Learning_Amazon Machine Learning - Fatal编程技术网

Amazon web services AWS机器学习数据

Amazon web services AWS机器学习数据,amazon-web-services,machine-learning,amazon-machine-learning,Amazon Web Services,Machine Learning,Amazon Machine Learning,我正在使用AWS机器学习回归预测餐厅排队等候的时间,在特定的工作日/时间。 今天我有大约800k的数据 示例数据: restaurantID(rowID)工作日(分类)时间(分类)表人员(数字)等待时间(数字-目标)1sun21:29223 2fri20:13443 我有两个问题: (一) 我应该使用时间作为分类还是数字? 最好分为两个字段:分钟和秒 (二) 我想在同一个模型中得到我所有餐厅的预测 例如: 我希望发送rowID标识符,它根据每个餐厅的数据(忽略其他数据)返回不同的预测 我试过

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

示例数据:

restaurantID(rowID)工作日(分类)时间(分类)表人员(数字)等待时间(数字-目标)
1sun21:29223
2fri20:13443


我有两个问题:

(一) 我应该使用时间作为分类还是数字? 最好分为两个字段:分钟和秒

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

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

我试过了,但它对所有rowID的预测都是一样的。为什么?


我应该为每家餐厅都准备一个模型吗?

您设置模型的方式有几个问题

1) 你拥有的时间不应该是绝对的。您的模型将时间12:29和12:30视为两个完全独立的属性。所以它永远不会用12:29学到的事实来预测12:30会发生什么。在您的情况下,您应该将时间设置为数字。不确定AmazonML是否可以自动为您转换它。如果不是,就把小时乘以60,再加上分钟。另一件有趣的事情是,通过选择半小时或更长的时间间隔,使你的时间合理化。你可以用(h*60+m)除以某个数字,具体取决于你想要多少桶。所以试着用120来获得2小时的间隔。通常,数据越多,间隔越短。关键是每个桶里都有很多样品

2) 您应该真正考虑从输入数据中删除restaurantID。放在那里会导致模型过度贴合。因此,它将无法根据从id:3或id:9的餐馆学到的事实,对id:5的餐馆做出预测。如果你有很多关于每家餐厅的数据,并且你不关心如何将你的预测外推到不在培训集中的餐厅,那么有餐厅id可能是可以的


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

您应该考虑与预测准确相关的内容,并且应该使用您的领域专业知识来定义数据中需要的功能/属性

例如,一天中的时间不仅仅是一个数字。从我在餐馆里的有限理解来看,我会放弃时间,只关注时间

我当然会为每家餐厅创建一个模型,因为餐厅的受欢迎程度或它提供的食物类型会影响等待时间。使用AmazonML可以轻松创建许多模型,因为您可以使用SDK构建模型,甚至可以使用AWSLambda安排模型的再培训(这意味着自动)


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

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

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

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


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

谢谢,帮了我很多忙!最后两个问题:我应该为每家餐厅提供一个ML模型吗?不可能使用相同的吗?你不需要为每个餐厅都有一个模型。如果您想让您的模型考虑特定的餐厅,只需将id作为属性包含。但在这种情况下,您将需要每个餐厅的大量数据,并且您的模型不会使用一个餐厅的数据来预测另一个餐厅的等待时间。也许你应该看看不同餐厅之间的共同点,并从中创造更多的属性(餐厅类别、食物类型、是否靠近剧院或体育场等)@Vlad-这些都是很好的建议。我还建议添加一个
Weekday/weekend
字段,假设周一到周五可能相似,因此它可以根据这些信息进行预测,而不是将每一天都视为独立的。试着想想其他可能导致全年变化的因素,比如季节、月份甚至温度。基本上,如果我走到你面前说“X天我要等多久”,想想你会问我什么——“这是周末吗?”,“这是公共假日吗?”,“那天暖和吗?”