.. _sphx_glr_auto_examples_linear_model_plot_sgd_comparison.py: ================================== Comparing various online solvers ================================== An example showing how different online solvers perform on the hand-written digits dataset. .. image:: /auto_examples/linear_model/images/sphx_glr_plot_sgd_comparison_001.png :align: center .. rst-class:: sphx-glr-script-out Out:: training SGD training ASGD training Perceptron training Passive-Aggressive I training Passive-Aggressive II training SAG | .. code-block:: python # Author: Rob Zinkov # License: BSD 3 clause import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.linear_model import SGDClassifier, Perceptron from sklearn.linear_model import PassiveAggressiveClassifier from sklearn.linear_model import LogisticRegression heldout = [0.95, 0.90, 0.75, 0.50, 0.01] rounds = 20 digits = datasets.load_digits() X, y = digits.data, digits.target classifiers = [ ("SGD", SGDClassifier()), ("ASGD", SGDClassifier(average=True)), ("Perceptron", Perceptron()), ("Passive-Aggressive I", PassiveAggressiveClassifier(loss='hinge', C=1.0)), ("Passive-Aggressive II", PassiveAggressiveClassifier(loss='squared_hinge', C=1.0)), ("SAG", LogisticRegression(solver='sag', tol=1e-1, C=1.e4 / X.shape[0])) ] xx = 1. - np.array(heldout) for name, clf in classifiers: print("training %s" % name) rng = np.random.RandomState(42) yy = [] for i in heldout: yy_ = [] for r in range(rounds): X_train, X_test, y_train, y_test = \ train_test_split(X, y, test_size=i, random_state=rng) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) yy_.append(1 - np.mean(y_pred == y_test)) yy.append(np.mean(yy_)) plt.plot(xx, yy, label=name) plt.legend(loc="upper right") plt.xlabel("Proportion train") plt.ylabel("Test Error Rate") plt.show() **Total running time of the script:** (0 minutes 13.852 seconds) .. container:: sphx-glr-download **Download Python source code:** :download:`plot_sgd_comparison.py ` .. container:: sphx-glr-download **Download IPython notebook:** :download:`plot_sgd_comparison.ipynb `