import time

from sklearn.datasets import fetch_20newsgroups_vectorized
from sklearn.svm import LinearSVC as LinearSVC2

from lightning.dual_cd import LinearSVC
from lightning.datasets import load_dataset

bunch = fetch_20newsgroups_vectorized(subset="all")
X, y = bunch.data, bunch.target

#X, y = load_dataset("mnist8")
#X[X == 0] = 1e-9  # make MNIST dense

print "L1-loss SVM + L2 penalty"
print

print "lightning"
start = time.time()
clf = LinearSVC(max_iter=1000, tol=1e-3, shrinking=True,
                loss="l1", C=1).fit(X, y)
print time.time() - start
print clf.score(X, y)

print "scikit-learn"
start = time.time()
clf = LinearSVC2(tol=1e-3, C=1, dual=True, fit_intercept=False, loss="l1",
                 penalty="l2").fit(X, y)
print time.time() - start
print clf.score(X, y)
