【发布时间】:2021-08-08 17:25:04
【问题描述】:
我正在研究机器学习模型,使用回归来预测各种数据类别的未来值。数据本身非常复杂,因此我在下面提供了一个示例来模仿我想要实现的目标:
df =
category date data
1 2021-06-19 94.9
1 2021-06-20 93.3
1 2021-06-21 91.6
... ... ...
2 2021-06-19 13.1
2 2021-06-20 11.9
2 2021-06-21 10.4
... ... ...
3 2021-06-19 53.9
3 2021-06-20 55.3
3 2021-06-21 59.3
... ... ...
我目前正在使用 for 循环,在每个类别上运行我的预测模型:
categories = df.category.unique()
for category in categories:
# run my model
# save results
但是,这很耗时,因为我要循环访问大约 4000 个类别。每个类别预测都独立于其他类别。
有没有一种简单的方法来并行化这项工作,而不是循环遍历每个类别,按顺序执行预测?
在线搜索时,Spark 是一个受欢迎的结果,但这似乎是一个很大的学习曲线(并且可能会失去一些在 python/pandas 中可访问的功能),我希望我可以在 python 库中使用一些东西更合适。
【问题讨论】:
-
请在循环内发布代码,即你对每个类别做什么。
-
这听起来是可并行的,而且 CPU 很便宜,所以归根结底是你想学什么和做什么——我们无法从你的脑海中挖掘出来。 Google Cloud 按需提供的 96 CPU 机器大约是 5 到 6 美元/小时(如果您可以容忍它被召回,则为 1 美元/小时),所以诀窍是要有一个启动脚本来从云存储下载你的东西,得到它完成,保存回云存储,并终止机器。您可以从更小、更便宜的机器开始,只需更改 GUI 上的 CPU 数量。从云存储下载到 Google Cloud 以外的其他地方的其他费用约为 0.12 美元/GB。
标签: python pandas machine-learning parallel-processing