如何在海量数据上训练机器学习模型?

问题描述 投票:0回答:3

关键点:数据集太大了,我几乎无法将其存储在硬件中。 (拍字节)

假设我的数据集中有数万亿行。该数据集太大,无法存储在内存中。我想在这个数据集上训练一个机器学习模型,比如逻辑回归。我该怎么办?

现在,我知道亚马逊/谷歌在大量数据上进行机器学习。他们怎样做呢?例如点击数据集,全局每个智能设备的输入都存储在一个数据集中。

拼命寻找新想法并乐于接受修正。

我的思路:

  1. 加载部分数据到内存中
  2. 执行梯度下降

这样优化就是小批量下降。

现在的问题是,在优化中,无论是SGD还是mini batch,在最坏的情况下,当它遍历完所有数据时就会停止。遍历整个数据集是不可能的。

所以我就有了提前停止的想法。提前停止保留验证集,并在错误停止下降/收敛于验证集时停止优化。但由于数据集的大小,这可能不可行。

现在我正在考虑简单地随机采样训练集和测试集,并使用可行的大小来训练模型。

database dataframe machine-learning deep-learning data-science
3个回答
0
投票

Pandas 读取函数将整个数据加载到 RAM 中,这可能是一个问题。为了解决这个问题,需要分块处理数据。


0
投票

如果数据量很大,可以使用批次来训练数据集。使用神经网络、xgboost 等复杂模型代替逻辑回归。


0
投票

要在如此大量的数据上训练机器学习模型,您可以首先使用 PyTorch 中的 DataLoader 类。

PyTorch DataLoader 类可用于加载和处理大型数据集中的数据,并创建小批量用于训练机器学习模型(例如逻辑回归)。

对于加载无法装入内存的巨大数据集特别有用。

© www.soinside.com 2019 - 2024. All rights reserved.