【问题标题】:Linear Regression Machine Learning training the model with huge data线性回归机器学习用海量数据训练模型
【发布时间】:2017-10-09 23:30:54
【问题描述】:

我正在研究一个机器学习线性回归问题,我的训练文件大约为 8GB。

虽然我的Tp配置高,但不支持。所以我可以将训练文件划分为 10/20个文件,用这些文件一个一个训练模型?

这种方法是否有效,还是我必须一次性使用全部数据训练模型?

【问题讨论】:

  • 您能提供更多信息吗?你试过什么?为什么不能运行 8gb 的文件(对于大多数机器学习来说相对较小)?你用什么来进行机器学习?这些信息将帮助我们提供更好的答案,谢谢!
  • 我们在说什么样的数据,你能给个样本吗?你的机器的规格是什么,8Gb 不是一个非常小的数据集,但它甚至不是很大!虽然分块运行它不是什么大问题,但首先我们需要信息!
  • 嗨史蒂夫,我正在尝试使用线性回归预测要支付的金额的值。您能否建议如何进行。请在下面找到代码:
  • 将熊猫导入为 pd df = pd.read_csv(data_path,index_col=0)
  • 嗨,Ubdus,您能帮我解决一下分块运行代码的过程吗?

标签: python linear-regression


【解决方案1】:

是的,这行得通。这种方法称为随机梯度下降法,是一种在数据无法放入内存时进行训练的标准方法。

Stochastic 的意思是“具有随机性”,之所以这么称呼是因为您没有遵循所有数据的实际梯度,而是基于一些数据的梯度近似值。即使您并不总是在正确的方向上更新,只要您的步长足够小并且您的批次足够大,该过程仍然可以很好地工作。

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

相反,您应该在他们所谓的“批次”数据上对其进行训练,并且每批次执行一个更新步骤。

所以,这很糟糕:

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)

【讨论】:

  • 嗨山姆,感谢您的解决方案。如果您提供一些代码供参考,特别是对于一个接一个地读取 .csv 文件并训练模型,这将非常有帮助。
猜你喜欢
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2019-08-01
  • 2017-06-25
  • 2017-04-06
  • 1970-01-01
  • 2019-04-17
相关资源
最近更新 更多