通过 sklearn 进行大规模机器学习
Table of Contents

概述

sklearn 是 python 中一个非常著名的机器学习库,但是一般都是在单机上使用而不支持分布式计算,因此往往跟大规模的机器学习扯不上关系。

这里通过 sklearn 进行的大规模机器学习指的也不是分布式机器学习,而是指当数据量比内存要大时怎么通过 sklearn 进行机器学习,更准确来说是 out-of-core learning, 这里涉及到的一个核心思想是将数据转化为流式输入,然后通过 SGD 更新模型的参数,当然其中还涉及到一些其他的细节和trick,下面会详细描述。

类似与深度学习中的batch ,每次只是读取一部分数据到内存中进行训练。其实际过程就是采样(sample)

在读入数据之前,首先需要对数据进行 shuffle 操作,消除数据本来的顺序信息等,同时可以让样本的特征的方差和均值更快达到稳定状态。

数据量大

外核(或者称作 外部存储器)学习是一种用于学习那些无法装进计算机主存储(RAM)的数据的技术。

这里描述了一种为了实现这一目的而设计的系统:

  1. 一种用流来传输实例的方式
  2. 一种从实例中提取特征的方法
  3. 增量式算法


如果你觉得这篇文章对你有帮助,不妨请我喝杯咖啡,鼓励我创造更多!