线性回归机器学习用大量数据训练模型

时间:2017-10-09 13:57:34

标签: python linear-regression

我正在研究机器学习线性回归问题,我的火车文件大约是8GB。

虽然我的Tp配置很高,但不支持。因此,我可以将列车文件分成,而不是为了培训目的传递整个文件 10/20文件并逐个训练模型这些文件?

这种方法是否有效还是我必须一次性训练模型中的整个数据?

1 个答案:

答案 0 :(得分:0)

是的,这很有效。它被称为随机梯度下降(Stochastic Gradient Descent)就是这样做的,并且是一种在数据无法适应内存时进行训练的标准方法。

随机性意味着“具有随机性”,因为您没有跟踪所有数据的实际渐变,而是基于某些数据的渐变近似值。即使您并不总是按照正确的方向进行更新,只要您的步长足够小并且您的批次足够大,该程序仍然可以很好地运行。

但是,请注意:您不能在每个文件上一个接一个地训练它完成。如果这样做,对第二个文件的训练将导致它忘记在第一个文件上学到的值。

相反,您应该根据他们所谓的“批量”数据进行培训,并且每批执行一次更新步骤。

所以,这很糟糕:

for file in files:
    while not Model.stop_condition():
        Model.train_step(file)

这很好:

while not Model.stop_condition():
    for file in files:
        Model.train_step(file)