sklearn大数据的线性回归

Chu*_*Nan 4 python regression linear-regression scikit-learn

是否sklearn.LinearRegression支持在线/增量学习?

我有100组数据,我试图完全实现它们.对于每个组,有超过10000个实例和~10个特征,因此如果我构造一个巨大的矩阵(10 ^ 6乘10),它将导致sklearn的内存错误.如果我每次都可以使用新组的批量样本更新回归量,那将是很好的.

我发现这篇文章是相关的,但是接受的解决方案适用于使用单个新数据(仅一个实例)而不是批量样本的在线学习.

Yan*_*Cao 9

看一下linear_model.SGDRegressor,它使用随机梯度学习一个线性模型.

一般来说,sklearn有许多允许" partial_fit"的模型,它们对于不适合RAM的中型到大型数据集都非常有用.

  • @ChuNan,不,你不需要形成大数据集.看一下示例代码:http://scikit-learn.org/dev/auto_examples/applications/plot_out_of_core_classification.html#example-applications-plot-out-of-core-classification-py (3认同)
  • 特别是@ChuNan,研究如何在生成器函数"iter_minibatches"内动态构建数据块.如果您不熟悉python生成器的概念,请查看:https://wiki.python.org/moin/Generators (2认同)

Dre*_*ess 8

并非所有算法都可以逐步学习,而不会立即查看所有实例.也就是说,所有实现partial_fitAPI的估算器都是小批量学习的候选者,也称为"在线学习".

这里是越过缩放策略增量学习的文章.为了您的目的,请看一下sklearn.linear_model.SGDRegressor课程.它是真正的在线,因此内存和收敛速度不受批量大小的影响.