from
sklearn.datasets
import
load_digits
from
sklearn.linear_model
import
LogisticRegression, SGDClassifier
from
sklearn.linear_model
import
PassiveAggressiveClassifier, Perceptron
from
sklearn.model_selection
import
train_test_split
from
sklearn.metrics
import
accuracy_score
digits
=
load_digits()
X_train, X_test, y_train, y_test
=
train_test_split(
digits.data, digits.target, test_size
=
0.3
)
solvers
=
[
(
'SAG'
, LogisticRegression(penalty
=
'l2'
,
solver
=
'sag'
,
max_iter
=
100
)),
(
'SAGA'
, LogisticRegression(penalty
=
'l1'
,
solver
=
'saga'
,
max_iter
=
100
)),
(
'L-BFGS'
, LogisticRegression(penalty
=
'l2'
,
solver
=
'lbfgs'
,
max_iter
=
100
)),
(
'liblinear'
, LogisticRegression(penalty
=
'l1'
,
solver
=
'liblinear'
,
max_iter
=
100
)),
(
'SGD'
, SGDClassifier(loss
=
'log'
, max_iter
=
100
)),
(
'Passive-Aggressive'
, PassiveAggressiveClassifier(max_iter
=
100
)),
(
'Perceptron'
, Perceptron(max_iter
=
100
))
]
for
name, clf
in
solvers:
clf.fit(X_train, y_train)
y_pred
=
clf.predict(X_test)
acc
=
accuracy_score(y_test, y_pred)
print
(f
"{name} accuracy: {acc}"
)