前面章节中用到了scikit-learn中的Perceptron和LogisticRegression类,它们都使用了LIBLINEAR库,LIBLINEAR是一个由中国台湾大学(http://www.csie.ntu.edu.tw/~cjlin/liblinear/)使用C/C++语言开发的经过高度优化的库。类似地,用于训练SVM模型的SVC类使用了LIBSVM库,它是一个专门用于SVM的C/C++库(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)。
与使用原生Python代码实现线性分类器相比,使用LIBLINEAR和LIBSVM库实现有其优点:在用于大型数据时,可以获得极高的训练速度。然而,有些时候数据集非常巨大以致无法加载到内存中,针对这种情况,scikit-learn提供了SGDClassifier类供用户选择,这个类还通过partial_fit方法支持在线学习。SGDClassifier类背后的概念类似于第2章中实现的随机梯度算法。我们可以使用默认参数以如下方式分别初始化基于随机梯度下降的感知器、逻辑斯谛回归以及支持向量机模型。