In [1]:
import argparse
import numpy as np

from svm import weight_vector, find_support, find_slack
from sklearn.svm import SVC

from sklearn.model_selection import GridSearchCV
from sklearn.metrics import classification_report

In [2]:
class FoursAndNines:
    """
    Class to store MNIST data
    """

    def __init__(self, location):
        # You shouldn't have to modify this class, but you can if
        # you'd like.

        import pickle, gzip

        # Load the dataset
        f = gzip.open(location, 'rb')

        train_set, valid_set, test_set = pickle.load(f)

        self.x_train = train_set[0][np.where(np.logical_or( train_set[1]==4, train_set[1] == 9))[0],:]
        self.y_train = train_set[1][np.where(np.logical_or( train_set[1]==4, train_set[1] == 9))[0]]

        shuff = np.arange(self.x_train.shape[0])
        np.random.shuffle(shuff)
        self.x_train = self.x_train[shuff,:]
        self.y_train = self.y_train[shuff]

        self.x_valid = valid_set[0][np.where(np.logical_or( valid_set[1]==4, valid_set[1] == 9))[0],:]
        self.y_valid = valid_set[1][np.where(np.logical_or( valid_set[1]==4, valid_set[1] == 9))[0]]

        self.x_test  = test_set[0][np.where(np.logical_or( test_set[1]==4, test_set[1] == 9))[0],:]
        self.y_test  = test_set[1][np.where(np.logical_or( test_set[1]==4, test_set[1] == 9))[0]]

        f.close()

In [3]:
def mnist_digit_show(flatimage, outname=None):

    import matplotlib.pyplot as plt

    image = np.reshape(flatimage, (-1,28))

    plt.matshow(image, cmap=plt.cm.binary)
    plt.xticks([])
    plt.yticks([])
    if outname:
        plt.savefig(outname)
    else:
        plt.show()

In [4]:
#parser = argparse.ArgumentParser(description='SVM classifier options')
#parser.add_argument('--limit', type=int, default=-1,
#                    help="Restrict training to this many examples")
#args = parser.parse_args()


data = FoursAndNines("../data/mnist.pkl.gz")

In [5]:
# TODO: Use the Sklearn implementation of support vector machines to train a classifier to
# distinguish 4's from 9's (using the MNIST data from the KNN homework).
# Use scikit-learn's Grid Search (http://scikit-learn.org/stable/modules/grid_search.html) to help determine
# optimial hyperparameters for the given model (e.g. C for linear kernel, C and p for polynomial kernel, and C and gamma for RBF).
# Set the parameters by cross-validation
tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-1,1e-2, 1e-3, 1e-4],
                     'C': [1, 10, 100, 1000]},
                    {'kernel': ['linear'], 'C': [1, 10, 100, 1000, 5000, 10000]},
                    {'kernel': ['poly'], 'degree': [1, 2, 3, 4], 'C': [1, 10, 100, 1000, 5000, 10000]}]

#scores = ['accuracy', 'precision', 'recall', 'f1']
scores = ['accuracy']



for score in scores:
    print("# Tuning hyper-parameters for %s" % score)
    print()

    clf = GridSearchCV(SVC(), tuned_parameters, cv=5,
                       scoring=score, n_jobs=2,
                       verbose=2)
    clf.fit(data.x_train, data.y_train)

    print("Best parameters set found on development set:")
    print()
    print(clf.best_params_)
    print()
    print("Grid scores on development set:")
    print()
    means = clf.cv_results_['mean_test_score']
    stds = clf.cv_results_['std_test_score']
    for mean, std, params in zip(means, stds, clf.cv_results_['params']):
        print("%0.3f (+/-%0.03f) for %r"
              % (mean, std * 2, params))
    print()

    print("Detailed classification report:")
    print()
    print("The model is trained on the full development set.")
    print("The scores are computed on the full evaluation set.")
    print()
    y_true, y_pred = data.y_test, clf.predict(data.x_test)
    print ("Scoring = ",score)
    print(classification_report(y_true, y_pred))
    print()

# -----------------------------------
# Plotting Examples
# -----------------------------------

# Display in on screen
mnist_digit_show(data.x_train[ 0,:])

# Plot image to file}
#mnist_digit_show(data.x_train[1,:], "mnistfig.png")


# Tuning hyper-parameters for accuracy

Fitting 5 folds for each of 46 candidates, totalling 230 fits
[CV] C=1, gamma=0.1, kernel=rbf ......................................
[CV] C=1, gamma=0.1, kernel=rbf ......................................
[CV] ....................... C=1, gamma=0.1, kernel=rbf, total= 1.3min
[CV] C=1, gamma=0.1, kernel=rbf ......................................
[CV] ....................... C=1, gamma=0.1, kernel=rbf, total= 1.3min
[CV] C=1, gamma=0.1, kernel=rbf ......................................
[CV] ....................... C=1, gamma=0.1, kernel=rbf, total= 1.3min
[CV] C=1, gamma=0.1, kernel=rbf ......................................
[CV] ....................... C=1, gamma=0.1, kernel=rbf, total= 1.3min
[CV] C=1, gamma=0.01, kernel=rbf .....................................
[CV] ...................... C=1, gamma=0.01, kernel=rbf, total=  12.4s
[CV] C=1, gamma=0.01, kernel=rbf .....................................
[CV] ...................... C=1, gamma=0.01, kernel=rbf, total=  13.9s
[CV] C=1, gamma=0.01, kernel=rbf .....................................
[CV] ...................... C=1, gamma=0.01, kernel=rbf, total=  12.7s
[CV] C=1, gamma=0.01, kernel=rbf .....................................
[CV] ...................... C=1, gamma=0.01, kernel=rbf, total=  10.9s
[CV] C=1, gamma=0.01, kernel=rbf .....................................
[CV] ...................... C=1, gamma=0.01, kernel=rbf, total=  11.8s
[CV] C=1, gamma=0.001, kernel=rbf ....................................
[CV] ....................... C=1, gamma=0.1, kernel=rbf, total= 1.2min
[CV] C=1, gamma=0.001, kernel=rbf ....................................
[CV] ..................... C=1, gamma=0.001, kernel=rbf, total=  35.6s
[CV] C=1, gamma=0.001, kernel=rbf ....................................
[CV] ..................... C=1, gamma=0.001, kernel=rbf, total=  34.1s
[CV] C=1, gamma=0.001, kernel=rbf ....................................
[CV] ..................... C=1, gamma=0.001, kernel=rbf, total=  25.3s
[CV] C=1, gamma=0.001, kernel=rbf ....................................
[CV] ..................... C=1, gamma=0.001, kernel=rbf, total=  24.9s
[CV] C=1, gamma=0.0001, kernel=rbf ...................................
[CV] ..................... C=1, gamma=0.001, kernel=rbf, total=  22.8s
[CV] C=1, gamma=0.0001, kernel=rbf ...................................
[CV] .................... C=1, gamma=0.0001, kernel=rbf, total=  52.1s
[CV] C=1, gamma=0.0001, kernel=rbf ...................................
[CV] .................... C=1, gamma=0.0001, kernel=rbf, total=  50.2s
[CV] C=1, gamma=0.0001, kernel=rbf ...................................
[CV] .................... C=1, gamma=0.0001, kernel=rbf, total=  52.8s
[CV] C=1, gamma=0.0001, kernel=rbf ...................................
[CV] .................... C=1, gamma=0.0001, kernel=rbf, total=  51.3s
[CV] C=10, gamma=0.1, kernel=rbf .....................................
[CV] .................... C=1, gamma=0.0001, kernel=rbf, total=  48.7s
[CV] C=10, gamma=0.1, kernel=rbf .....................................
[CV] ...................... C=10, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=10, gamma=0.1, kernel=rbf .....................................
[CV] ...................... C=10, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=10, gamma=0.1, kernel=rbf .....................................
[CV] ...................... C=10, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=10, gamma=0.1, kernel=rbf .....................................
[CV] ...................... C=10, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=10, gamma=0.01, kernel=rbf ....................................
[CV] ..................... C=10, gamma=0.01, kernel=rbf, total=   8.5s
[CV] C=10, gamma=0.01, kernel=rbf ....................................
[CV] ..................... C=10, gamma=0.01, kernel=rbf, total=   8.2s
[CV] C=10, gamma=0.01, kernel=rbf ....................................
[CV] ..................... C=10, gamma=0.01, kernel=rbf, total=  10.7s
[CV] C=10, gamma=0.01, kernel=rbf ....................................
[CV] ...................... C=10, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=10, gamma=0.01, kernel=rbf ....................................
[CV] ..................... C=10, gamma=0.01, kernel=rbf, total=   9.1s
[CV] C=10, gamma=0.001, kernel=rbf ...................................
[CV] ..................... C=10, gamma=0.01, kernel=rbf, total=   7.7s
[CV] C=10, gamma=0.001, kernel=rbf ...................................
[CV] .................... C=10, gamma=0.001, kernel=rbf, total=  10.8s
[CV] C=10, gamma=0.001, kernel=rbf ...................................
[CV] .................... C=10, gamma=0.001, kernel=rbf, total=  12.8s
[CV] C=10, gamma=0.001, kernel=rbf ...................................
[CV] .................... C=10, gamma=0.001, kernel=rbf, total=  10.5s
[CV] C=10, gamma=0.001, kernel=rbf ...................................
[CV] .................... C=10, gamma=0.001, kernel=rbf, total=  11.6s
[CV] C=10, gamma=0.0001, kernel=rbf ..................................
[CV] .................... C=10, gamma=0.001, kernel=rbf, total=  11.6s
[CV] C=10, gamma=0.0001, kernel=rbf ..................................
[CV] ................... C=10, gamma=0.0001, kernel=rbf, total=  20.3s
[CV] C=10, gamma=0.0001, kernel=rbf ..................................
[CV] ................... C=10, gamma=0.0001, kernel=rbf, total=  19.9s
[CV] C=10, gamma=0.0001, kernel=rbf ..................................
[Parallel(n_jobs=2)]: Done  37 tasks      | elapsed: 17.7min
[CV] ................... C=10, gamma=0.0001, kernel=rbf, total=  23.9s
[CV] C=10, gamma=0.0001, kernel=rbf ..................................
[CV] ................... C=10, gamma=0.0001, kernel=rbf, total=  22.7s
[CV] C=100, gamma=0.1, kernel=rbf ....................................
[CV] ................... C=10, gamma=0.0001, kernel=rbf, total=  20.8s
[CV] C=100, gamma=0.1, kernel=rbf ....................................
[CV] ..................... C=100, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=100, gamma=0.1, kernel=rbf ....................................
[CV] ..................... C=100, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=100, gamma=0.1, kernel=rbf ....................................
[CV] ..................... C=100, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=100, gamma=0.1, kernel=rbf ....................................
[CV] ..................... C=100, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=100, gamma=0.01, kernel=rbf ...................................
[CV] .................... C=100, gamma=0.01, kernel=rbf, total=   7.6s
[CV] C=100, gamma=0.01, kernel=rbf ...................................
[CV] .................... C=100, gamma=0.01, kernel=rbf, total=   7.7s
[CV] C=100, gamma=0.01, kernel=rbf ...................................
[CV] .................... C=100, gamma=0.01, kernel=rbf, total=   8.1s
[CV] C=100, gamma=0.01, kernel=rbf ...................................
[CV] .................... C=100, gamma=0.01, kernel=rbf, total=   7.8s
[CV] C=100, gamma=0.01, kernel=rbf ...................................
[CV] .................... C=100, gamma=0.01, kernel=rbf, total=   7.4s
[CV] C=100, gamma=0.001, kernel=rbf ..................................
[CV] ..................... C=100, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=100, gamma=0.001, kernel=rbf ..................................
[CV] ................... C=100, gamma=0.001, kernel=rbf, total=   8.0s
[CV] C=100, gamma=0.001, kernel=rbf ..................................
[CV] ................... C=100, gamma=0.001, kernel=rbf, total=   8.1s
[CV] C=100, gamma=0.001, kernel=rbf ..................................
[CV] ................... C=100, gamma=0.001, kernel=rbf, total=   8.0s
[CV] C=100, gamma=0.001, kernel=rbf ..................................
[CV] ................... C=100, gamma=0.001, kernel=rbf, total=   8.3s
[CV] C=100, gamma=0.0001, kernel=rbf .................................
[CV] ................... C=100, gamma=0.001, kernel=rbf, total=   7.8s
[CV] C=100, gamma=0.0001, kernel=rbf .................................
[CV] .................. C=100, gamma=0.0001, kernel=rbf, total=  11.3s
[CV] C=100, gamma=0.0001, kernel=rbf .................................
[CV] .................. C=100, gamma=0.0001, kernel=rbf, total=  10.6s
[CV] C=100, gamma=0.0001, kernel=rbf .................................
[CV] .................. C=100, gamma=0.0001, kernel=rbf, total=  10.6s
[CV] C=100, gamma=0.0001, kernel=rbf .................................
[CV] .................. C=100, gamma=0.0001, kernel=rbf, total=  10.7s
[CV] C=1000, gamma=0.1, kernel=rbf ...................................
[CV] .................. C=100, gamma=0.0001, kernel=rbf, total=  10.8s
[CV] C=1000, gamma=0.1, kernel=rbf ...................................
[CV] .................... C=1000, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=1000, gamma=0.1, kernel=rbf ...................................
[CV] .................... C=1000, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=1000, gamma=0.1, kernel=rbf ...................................
[CV] .................... C=1000, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=1000, gamma=0.1, kernel=rbf ...................................
[CV] .................... C=1000, gamma=0.1, kernel=rbf, total= 1.0min
[CV] C=1000, gamma=0.01, kernel=rbf ..................................
[CV] ................... C=1000, gamma=0.01, kernel=rbf, total=   7.9s
[CV] C=1000, gamma=0.01, kernel=rbf ..................................
[CV] ................... C=1000, gamma=0.01, kernel=rbf, total=   8.1s
[CV] C=1000, gamma=0.01, kernel=rbf ..................................
[CV] ................... C=1000, gamma=0.01, kernel=rbf, total=   8.1s
[CV] C=1000, gamma=0.01, kernel=rbf ..................................
[CV] ................... C=1000, gamma=0.01, kernel=rbf, total=   7.8s
[CV] C=1000, gamma=0.01, kernel=rbf ..................................
[CV] ................... C=1000, gamma=0.01, kernel=rbf, total=  11.3s
[CV] C=1000, gamma=0.001, kernel=rbf .................................
[CV] .................. C=1000, gamma=0.001, kernel=rbf, total=   9.9s
[CV] C=1000, gamma=0.001, kernel=rbf .................................
[CV] .................... C=1000, gamma=0.1, kernel=rbf, total= 1.1min
[CV] C=1000, gamma=0.001, kernel=rbf .................................
[CV] .................. C=1000, gamma=0.001, kernel=rbf, total=   7.6s
[CV] C=1000, gamma=0.001, kernel=rbf .................................
[CV] .................. C=1000, gamma=0.001, kernel=rbf, total=   8.3s
[CV] C=1000, gamma=0.001, kernel=rbf .................................
[CV] .................. C=1000, gamma=0.001, kernel=rbf, total=   8.0s
[CV] C=1000, gamma=0.0001, kernel=rbf ................................
[CV] .................. C=1000, gamma=0.001, kernel=rbf, total=   8.0s
[CV] C=1000, gamma=0.0001, kernel=rbf ................................
[CV] ................. C=1000, gamma=0.0001, kernel=rbf, total=   9.2s
[CV] C=1000, gamma=0.0001, kernel=rbf ................................
[CV] ................. C=1000, gamma=0.0001, kernel=rbf, total=   8.9s
[CV] C=1000, gamma=0.0001, kernel=rbf ................................
[CV] ................. C=1000, gamma=0.0001, kernel=rbf, total=   8.8s
[CV] C=1000, gamma=0.0001, kernel=rbf ................................
[CV] ................. C=1000, gamma=0.0001, kernel=rbf, total=   8.9s
[CV] C=1, kernel=linear ..............................................
[CV] ................. C=1000, gamma=0.0001, kernel=rbf, total=   8.7s
[CV] C=1, kernel=linear ..............................................
[CV] ............................... C=1, kernel=linear, total=  11.9s
[CV] C=1, kernel=linear ..............................................
[CV] ............................... C=1, kernel=linear, total=  11.8s
[CV] C=1, kernel=linear ..............................................
[CV] ............................... C=1, kernel=linear, total=  13.7s
[CV] C=1, kernel=linear ..............................................
[CV] ............................... C=1, kernel=linear, total=  13.1s
[CV] C=10, kernel=linear .............................................
[CV] ............................... C=1, kernel=linear, total=   9.6s
[CV] C=10, kernel=linear .............................................
[CV] .............................. C=10, kernel=linear, total=  15.9s
[CV] C=10, kernel=linear .............................................
[CV] .............................. C=10, kernel=linear, total=  15.0s
[CV] C=10, kernel=linear .............................................
[CV] .............................. C=10, kernel=linear, total=  15.1s
[CV] C=10, kernel=linear .............................................
[CV] .............................. C=10, kernel=linear, total=  16.3s
[CV] C=100, kernel=linear ............................................
[CV] .............................. C=10, kernel=linear, total=  14.2s
[CV] C=100, kernel=linear ............................................
[CV] ............................. C=100, kernel=linear, total=  53.7s
[CV] C=100, kernel=linear ............................................
[CV] ............................. C=100, kernel=linear, total=  55.9s
[CV] C=100, kernel=linear ............................................
[CV] ............................. C=100, kernel=linear, total=  36.1s
[CV] C=100, kernel=linear ............................................
[CV] ............................. C=100, kernel=linear, total=  35.5s
[CV] C=1000, kernel=linear ...........................................
[CV] ............................. C=100, kernel=linear, total=  30.2s
[CV] C=1000, kernel=linear ...........................................
[CV] ............................ C=1000, kernel=linear, total= 3.1min
[CV] C=1000, kernel=linear ...........................................
[CV] ............................ C=1000, kernel=linear, total= 3.6min
[CV] C=1000, kernel=linear ...........................................
[CV] ............................ C=1000, kernel=linear, total= 2.5min
[CV] C=1000, kernel=linear ...........................................
[CV] ............................ C=1000, kernel=linear, total= 3.0min
[CV] C=5000, kernel=linear ...........................................
[CV] ............................ C=1000, kernel=linear, total= 1.7min
[CV] C=5000, kernel=linear ...........................................
[CV] ............................ C=5000, kernel=linear, total= 8.8min
[CV] C=5000, kernel=linear ...........................................
[CV] ............................ C=5000, kernel=linear, total= 4.5min
[CV] C=5000, kernel=linear ...........................................
[CV] ............................ C=5000, kernel=linear, total=15.3min
[CV] C=5000, kernel=linear ...........................................
[CV] ............................ C=5000, kernel=linear, total= 1.7min
[CV] C=10000, kernel=linear ..........................................
[CV] ............................ C=5000, kernel=linear, total=10.0min
[CV] C=10000, kernel=linear ..........................................
[CV] ........................... C=10000, kernel=linear, total=16.4min
[CV] C=10000, kernel=linear ..........................................
[CV] ........................... C=10000, kernel=linear, total=27.8min
[CV] C=10000, kernel=linear ..........................................
[CV] ........................... C=10000, kernel=linear, total= 4.1min
[CV] C=10000, kernel=linear ..........................................
[CV] ........................... C=10000, kernel=linear, total= 1.7min
[CV] C=1, degree=1, kernel=poly ......................................
[CV] ....................... C=1, degree=1, kernel=poly, total=  23.3s
[CV] C=1, degree=1, kernel=poly ......................................
[CV] ....................... C=1, degree=1, kernel=poly, total=  22.4s
[CV] C=1, degree=1, kernel=poly ......................................
[CV] ....................... C=1, degree=1, kernel=poly, total=  25.1s
[CV] C=1, degree=1, kernel=poly ......................................
[CV] ....................... C=1, degree=1, kernel=poly, total=  30.2s
[CV] C=1, degree=1, kernel=poly ......................................
[CV] ....................... C=1, degree=1, kernel=poly, total=  22.3s
[CV] C=1, degree=2, kernel=poly ......................................
[CV] ....................... C=1, degree=2, kernel=poly, total=  48.8s
[CV] C=1, degree=2, kernel=poly ......................................
[CV] ....................... C=1, degree=2, kernel=poly, total=  50.3s
[CV] C=1, degree=2, kernel=poly ......................................
[CV] ....................... C=1, degree=2, kernel=poly, total=  48.7s
[CV] C=1, degree=2, kernel=poly ......................................
[CV] ....................... C=1, degree=2, kernel=poly, total=  49.7s
[CV] C=1, degree=2, kernel=poly ......................................
[CV] ....................... C=1, degree=2, kernel=poly, total= 1.0min
[CV] C=1, degree=3, kernel=poly ......................................
[CV] ........................... C=10000, kernel=linear, total=14.2min
[CV] C=1, degree=3, kernel=poly ......................................
[CV] ....................... C=1, degree=3, kernel=poly, total= 1.2min
[CV] C=1, degree=3, kernel=poly ......................................
[CV] ....................... C=1, degree=3, kernel=poly, total= 1.3min
[CV] C=1, degree=3, kernel=poly ......................................
[CV] ....................... C=1, degree=3, kernel=poly, total= 1.4min
[CV] C=1, degree=3, kernel=poly ......................................
[CV] ....................... C=1, degree=3, kernel=poly, total= 1.5min
[CV] C=1, degree=4, kernel=poly ......................................
[CV] ....................... C=1, degree=3, kernel=poly, total= 1.5min
[CV] C=1, degree=4, kernel=poly ......................................
[CV] ....................... C=1, degree=4, kernel=poly, total= 1.3min
[CV] C=1, degree=4, kernel=poly ......................................
[CV] ....................... C=1, degree=4, kernel=poly, total= 1.3min
[CV] C=1, degree=4, kernel=poly ......................................
[CV] ....................... C=1, degree=4, kernel=poly, total= 1.2min
[CV] C=1, degree=4, kernel=poly ......................................
[CV] ....................... C=1, degree=4, kernel=poly, total= 1.2min
[CV] C=10, degree=1, kernel=poly .....................................
[CV] ...................... C=10, degree=1, kernel=poly, total=  11.4s
[CV] C=10, degree=1, kernel=poly .....................................
[CV] ...................... C=10, degree=1, kernel=poly, total=  14.1s
[CV] C=10, degree=1, kernel=poly .....................................
[CV] ...................... C=10, degree=1, kernel=poly, total=  13.8s
[CV] C=10, degree=1, kernel=poly .....................................
[CV] ...................... C=10, degree=1, kernel=poly, total=  14.6s
[CV] C=10, degree=1, kernel=poly .....................................
[CV] ....................... C=1, degree=4, kernel=poly, total= 1.3min
[CV] C=10, degree=2, kernel=poly .....................................
[CV] ...................... C=10, degree=1, kernel=poly, total=  15.0s
[CV] C=10, degree=2, kernel=poly .....................................
[CV] ...................... C=10, degree=2, kernel=poly, total=  30.1s
[CV] C=10, degree=2, kernel=poly .....................................
[CV] ...................... C=10, degree=2, kernel=poly, total=  26.8s
[CV] C=10, degree=2, kernel=poly .....................................
[CV] ...................... C=10, degree=2, kernel=poly, total=  25.8s
[CV] C=10, degree=2, kernel=poly .....................................
[CV] ...................... C=10, degree=2, kernel=poly, total=  25.6s
[CV] C=10, degree=3, kernel=poly .....................................
[CV] ...................... C=10, degree=2, kernel=poly, total=  25.1s
[CV] C=10, degree=3, kernel=poly .....................................
[CV] ...................... C=10, degree=3, kernel=poly, total= 1.1min
[CV] C=10, degree=3, kernel=poly .....................................
[CV] ...................... C=10, degree=3, kernel=poly, total=  59.9s
[CV] C=10, degree=3, kernel=poly .....................................
[CV] ...................... C=10, degree=3, kernel=poly, total=  52.6s
[CV] C=10, degree=3, kernel=poly .....................................
[CV] ...................... C=10, degree=3, kernel=poly, total=  53.0s
[CV] C=10, degree=4, kernel=poly .....................................
[CV] ...................... C=10, degree=3, kernel=poly, total=  56.8s
[CV] C=10, degree=4, kernel=poly .....................................
[CV] ...................... C=10, degree=4, kernel=poly, total= 1.2min
[CV] C=10, degree=4, kernel=poly .....................................
[CV] ...................... C=10, degree=4, kernel=poly, total= 1.2min
[CV] C=10, degree=4, kernel=poly .....................................
[CV] ...................... C=10, degree=4, kernel=poly, total= 1.3min
[CV] C=10, degree=4, kernel=poly .....................................
[CV] ...................... C=10, degree=4, kernel=poly, total= 1.2min
[CV] C=100, degree=1, kernel=poly ....................................
[CV] ..................... C=100, degree=1, kernel=poly, total=   8.3s
[CV] C=100, degree=1, kernel=poly ....................................
[CV] ..................... C=100, degree=1, kernel=poly, total=   8.6s
[CV] C=100, degree=1, kernel=poly ....................................
[CV] ..................... C=100, degree=1, kernel=poly, total=   9.2s
[CV] C=100, degree=1, kernel=poly ....................................
[CV] ..................... C=100, degree=1, kernel=poly, total=   8.7s
[CV] C=100, degree=1, kernel=poly ....................................
[CV] ...................... C=10, degree=4, kernel=poly, total= 1.2min
[CV] C=100, degree=2, kernel=poly ....................................
[CV] ..................... C=100, degree=1, kernel=poly, total=   8.6s
[CV] C=100, degree=2, kernel=poly ....................................
[CV] ..................... C=100, degree=2, kernel=poly, total=  10.9s
[CV] C=100, degree=2, kernel=poly ....................................
[CV] ..................... C=100, degree=2, kernel=poly, total=  10.7s
[CV] C=100, degree=2, kernel=poly ....................................
[CV] ..................... C=100, degree=2, kernel=poly, total=  10.3s
[CV] C=100, degree=2, kernel=poly ....................................
[Parallel(n_jobs=2)]: Done 158 tasks      | elapsed: 123.5min
[CV] ..................... C=100, degree=2, kernel=poly, total=  11.3s
[CV] C=100, degree=3, kernel=poly ....................................
[CV] ..................... C=100, degree=2, kernel=poly, total=  10.5s
[CV] C=100, degree=3, kernel=poly ....................................
[CV] ..................... C=100, degree=3, kernel=poly, total=  28.2s
[CV] C=100, degree=3, kernel=poly ....................................
[CV] ..................... C=100, degree=3, kernel=poly, total=  30.8s
[CV] C=100, degree=3, kernel=poly ....................................
[CV] ..................... C=100, degree=3, kernel=poly, total=  27.5s
[CV] C=100, degree=3, kernel=poly ....................................
[CV] ..................... C=100, degree=3, kernel=poly, total=  28.7s
[CV] C=100, degree=4, kernel=poly ....................................
[CV] ..................... C=100, degree=3, kernel=poly, total=  31.1s
[CV] C=100, degree=4, kernel=poly ....................................
[CV] ..................... C=100, degree=4, kernel=poly, total= 1.0min
[CV] C=100, degree=4, kernel=poly ....................................
[CV] ..................... C=100, degree=4, kernel=poly, total=  58.4s
[CV] C=100, degree=4, kernel=poly ....................................
[CV] ..................... C=100, degree=4, kernel=poly, total=  58.2s
[CV] C=100, degree=4, kernel=poly ....................................
[CV] ..................... C=100, degree=4, kernel=poly, total=  59.0s
[CV] C=1000, degree=1, kernel=poly ...................................
[CV] .................... C=1000, degree=1, kernel=poly, total=  10.3s
[CV] C=1000, degree=1, kernel=poly ...................................
[CV] .................... C=1000, degree=1, kernel=poly, total=  10.4s
[CV] C=1000, degree=1, kernel=poly ...................................
[CV] .................... C=1000, degree=1, kernel=poly, total=  10.0s
[CV] C=1000, degree=1, kernel=poly ...................................
[CV] ..................... C=100, degree=4, kernel=poly, total=  56.3s
[CV] C=1000, degree=1, kernel=poly ...................................
[CV] .................... C=1000, degree=1, kernel=poly, total=  11.5s
[CV] C=1000, degree=2, kernel=poly ...................................
[CV] .................... C=1000, degree=2, kernel=poly, total=   7.6s
[CV] C=1000, degree=2, kernel=poly ...................................
[CV] .................... C=1000, degree=1, kernel=poly, total=  11.0s
[CV] C=1000, degree=2, kernel=poly ...................................
[CV] .................... C=1000, degree=2, kernel=poly, total=   7.7s
[CV] C=1000, degree=2, kernel=poly ...................................
[CV] .................... C=1000, degree=2, kernel=poly, total=   7.8s
[CV] C=1000, degree=2, kernel=poly ...................................
[CV] .................... C=1000, degree=2, kernel=poly, total=   7.3s
[CV] C=1000, degree=3, kernel=poly ...................................
[CV] .................... C=1000, degree=2, kernel=poly, total=   7.5s
[CV] C=1000, degree=3, kernel=poly ...................................
[CV] .................... C=1000, degree=3, kernel=poly, total=  13.6s
[CV] .................... C=1000, degree=3, kernel=poly, total=  13.5s
[CV] C=1000, degree=3, kernel=poly ...................................
[CV] C=1000, degree=3, kernel=poly ...................................
[CV] .................... C=1000, degree=3, kernel=poly, total=  15.0s
[CV] C=1000, degree=3, kernel=poly ...................................
[CV] .................... C=1000, degree=3, kernel=poly, total=  15.3s
[CV] C=1000, degree=4, kernel=poly ...................................
[CV] .................... C=1000, degree=3, kernel=poly, total=  13.2s
[CV] C=1000, degree=4, kernel=poly ...................................
[CV] .................... C=1000, degree=4, kernel=poly, total=  31.3s
[CV] C=1000, degree=4, kernel=poly ...................................
[CV] .................... C=1000, degree=4, kernel=poly, total=  29.3s
[CV] C=1000, degree=4, kernel=poly ...................................
[CV] .................... C=1000, degree=4, kernel=poly, total=  29.2s
[CV] C=1000, degree=4, kernel=poly ...................................
[CV] .................... C=1000, degree=4, kernel=poly, total=  29.5s
[CV] C=5000, degree=1, kernel=poly ...................................
[CV] .................... C=5000, degree=1, kernel=poly, total=  15.0s
[CV] C=5000, degree=1, kernel=poly ...................................
[CV] .................... C=1000, degree=4, kernel=poly, total=  29.9s
[CV] C=5000, degree=1, kernel=poly ...................................
[CV] .................... C=5000, degree=1, kernel=poly, total=  13.5s
[CV] C=5000, degree=1, kernel=poly ...................................
[CV] .................... C=5000, degree=1, kernel=poly, total=  12.9s
[CV] C=5000, degree=1, kernel=poly ...................................
[CV] .................... C=5000, degree=1, kernel=poly, total=  14.0s
[CV] C=5000, degree=2, kernel=poly ...................................
[CV] .................... C=5000, degree=1, kernel=poly, total=  13.4s
[CV] C=5000, degree=2, kernel=poly ...................................
[CV] .................... C=5000, degree=2, kernel=poly, total=   7.4s
[CV] C=5000, degree=2, kernel=poly ...................................
[CV] .................... C=5000, degree=2, kernel=poly, total=   7.1s
[CV] C=5000, degree=2, kernel=poly ...................................
[CV] .................... C=5000, degree=2, kernel=poly, total=   6.9s
[CV] C=5000, degree=2, kernel=poly ...................................
[CV] .................... C=5000, degree=2, kernel=poly, total=   7.0s
[CV] C=5000, degree=3, kernel=poly ...................................
[CV] .................... C=5000, degree=2, kernel=poly, total=   6.9s
[CV] C=5000, degree=3, kernel=poly ...................................
[CV] .................... C=5000, degree=3, kernel=poly, total=   8.9s
[CV] C=5000, degree=3, kernel=poly ...................................
[CV] .................... C=5000, degree=3, kernel=poly, total=   9.3s
[CV] C=5000, degree=3, kernel=poly ...................................
[CV] .................... C=5000, degree=3, kernel=poly, total=  10.0s
[CV] C=5000, degree=3, kernel=poly ...................................
[CV] .................... C=5000, degree=3, kernel=poly, total=  10.0s
[CV] C=5000, degree=4, kernel=poly ...................................
[CV] .................... C=5000, degree=3, kernel=poly, total=   8.5s
[CV] C=5000, degree=4, kernel=poly ...................................
[CV] .................... C=5000, degree=4, kernel=poly, total=  18.8s
[CV] C=5000, degree=4, kernel=poly ...................................
[CV] .................... C=5000, degree=4, kernel=poly, total=  18.3s
[CV] C=5000, degree=4, kernel=poly ...................................
[CV] .................... C=5000, degree=4, kernel=poly, total=  17.9s
[CV] C=5000, degree=4, kernel=poly ...................................
[CV] .................... C=5000, degree=4, kernel=poly, total=  18.0s
[CV] C=10000, degree=1, kernel=poly ..................................
[CV] .................... C=5000, degree=4, kernel=poly, total=  17.9s
[CV] C=10000, degree=1, kernel=poly ..................................
[CV] ................... C=10000, degree=1, kernel=poly, total=  18.0s
[CV] C=10000, degree=1, kernel=poly ..................................
[CV] ................... C=10000, degree=1, kernel=poly, total=  17.3s
[CV] C=10000, degree=1, kernel=poly ..................................
[CV] ................... C=10000, degree=1, kernel=poly, total=  17.2s
[CV] C=10000, degree=1, kernel=poly ..................................
[CV] ................... C=10000, degree=1, kernel=poly, total=  17.8s
[CV] C=10000, degree=2, kernel=poly ..................................
[CV] ................... C=10000, degree=1, kernel=poly, total=  16.4s
[CV] C=10000, degree=2, kernel=poly ..................................
[CV] ................... C=10000, degree=2, kernel=poly, total=   7.6s
[CV] C=10000, degree=2, kernel=poly ..................................
[CV] ................... C=10000, degree=2, kernel=poly, total=   7.9s
[CV] C=10000, degree=2, kernel=poly ..................................
[CV] ................... C=10000, degree=2, kernel=poly, total=   7.7s
[CV] C=10000, degree=2, kernel=poly ..................................
[CV] ................... C=10000, degree=2, kernel=poly, total=   7.3s
[CV] C=10000, degree=3, kernel=poly ..................................
[CV] ................... C=10000, degree=2, kernel=poly, total=   7.1s
[CV] C=10000, degree=3, kernel=poly ..................................
[CV] ................... C=10000, degree=3, kernel=poly, total=   8.1s
[CV] C=10000, degree=3, kernel=poly ..................................
[CV] ................... C=10000, degree=3, kernel=poly, total=   7.8s
[CV] C=10000, degree=3, kernel=poly ..................................
[CV] ................... C=10000, degree=3, kernel=poly, total=   7.9s
[CV] C=10000, degree=3, kernel=poly ..................................
[CV] ................... C=10000, degree=3, kernel=poly, total=  10.4s
[CV] C=10000, degree=4, kernel=poly ..................................
[CV] ................... C=10000, degree=3, kernel=poly, total=   9.1s
[CV] C=10000, degree=4, kernel=poly ..................................
[CV] ................... C=10000, degree=4, kernel=poly, total=  14.7s
[CV] C=10000, degree=4, kernel=poly ..................................
[CV] ................... C=10000, degree=4, kernel=poly, total=  14.4s
[CV] C=10000, degree=4, kernel=poly ..................................
[CV] ................... C=10000, degree=4, kernel=poly, total=  14.3s
[CV] C=10000, degree=4, kernel=poly ..................................
[CV] ................... C=10000, degree=4, kernel=poly, total=  14.1s
[CV] ................... C=10000, degree=4, kernel=poly, total=  14.4s
[Parallel(n_jobs=2)]: Done 230 out of 230 | elapsed: 140.9min finished
Best parameters set found on development set:

{'C': 1000, 'degree': 2, 'kernel': 'poly'}

Grid scores on development set:

0.976 (+/-0.008) for {'C': 1, 'gamma': 0.1, 'kernel': 'rbf'}
0.985 (+/-0.005) for {'C': 1, 'gamma': 0.01, 'kernel': 'rbf'}
0.962 (+/-0.009) for {'C': 1, 'gamma': 0.001, 'kernel': 'rbf'}
0.938 (+/-0.012) for {'C': 1, 'gamma': 0.0001, 'kernel': 'rbf'}
0.978 (+/-0.008) for {'C': 10, 'gamma': 0.1, 'kernel': 'rbf'}
0.991 (+/-0.004) for {'C': 10, 'gamma': 0.01, 'kernel': 'rbf'}
0.973 (+/-0.005) for {'C': 10, 'gamma': 0.001, 'kernel': 'rbf'}
0.960 (+/-0.009) for {'C': 10, 'gamma': 0.0001, 'kernel': 'rbf'}
0.978 (+/-0.008) for {'C': 100, 'gamma': 0.1, 'kernel': 'rbf'}
0.991 (+/-0.004) for {'C': 100, 'gamma': 0.01, 'kernel': 'rbf'}
0.982 (+/-0.006) for {'C': 100, 'gamma': 0.001, 'kernel': 'rbf'}
0.968 (+/-0.004) for {'C': 100, 'gamma': 0.0001, 'kernel': 'rbf'}
0.978 (+/-0.008) for {'C': 1000, 'gamma': 0.1, 'kernel': 'rbf'}
0.991 (+/-0.004) for {'C': 1000, 'gamma': 0.01, 'kernel': 'rbf'}
0.986 (+/-0.004) for {'C': 1000, 'gamma': 0.001, 'kernel': 'rbf'}
0.971 (+/-0.005) for {'C': 1000, 'gamma': 0.0001, 'kernel': 'rbf'}
0.965 (+/-0.006) for {'C': 1, 'kernel': 'linear'}
0.958 (+/-0.010) for {'C': 10, 'kernel': 'linear'}
0.953 (+/-0.009) for {'C': 100, 'kernel': 'linear'}
0.948 (+/-0.008) for {'C': 1000, 'kernel': 'linear'}
0.944 (+/-0.009) for {'C': 5000, 'kernel': 'linear'}
0.944 (+/-0.010) for {'C': 10000, 'kernel': 'linear'}
0.957 (+/-0.010) for {'C': 1, 'degree': 1, 'kernel': 'poly'}
0.948 (+/-0.013) for {'C': 1, 'degree': 2, 'kernel': 'poly'}
0.526 (+/-0.006) for {'C': 1, 'degree': 3, 'kernel': 'poly'}
0.507 (+/-0.000) for {'C': 1, 'degree': 4, 'kernel': 'poly'}
0.966 (+/-0.003) for {'C': 10, 'degree': 1, 'kernel': 'poly'}
0.974 (+/-0.006) for {'C': 10, 'degree': 2, 'kernel': 'poly'}
0.947 (+/-0.013) for {'C': 10, 'degree': 3, 'kernel': 'poly'}
0.547 (+/-0.005) for {'C': 10, 'degree': 4, 'kernel': 'poly'}
0.968 (+/-0.004) for {'C': 100, 'degree': 1, 'kernel': 'poly'}
0.985 (+/-0.004) for {'C': 100, 'degree': 2, 'kernel': 'poly'}
0.976 (+/-0.006) for {'C': 100, 'degree': 3, 'kernel': 'poly'}
0.929 (+/-0.018) for {'C': 100, 'degree': 4, 'kernel': 'poly'}
0.964 (+/-0.006) for {'C': 1000, 'degree': 1, 'kernel': 'poly'}
0.992 (+/-0.003) for {'C': 1000, 'degree': 2, 'kernel': 'poly'}
0.987 (+/-0.004) for {'C': 1000, 'degree': 3, 'kernel': 'poly'}
0.967 (+/-0.009) for {'C': 1000, 'degree': 4, 'kernel': 'poly'}
0.960 (+/-0.009) for {'C': 5000, 'degree': 1, 'kernel': 'poly'}
0.991 (+/-0.003) for {'C': 5000, 'degree': 2, 'kernel': 'poly'}
0.991 (+/-0.003) for {'C': 5000, 'degree': 3, 'kernel': 'poly'}
0.984 (+/-0.004) for {'C': 5000, 'degree': 4, 'kernel': 'poly'}
0.958 (+/-0.011) for {'C': 10000, 'degree': 1, 'kernel': 'poly'}
0.991 (+/-0.003) for {'C': 10000, 'degree': 2, 'kernel': 'poly'}
0.991 (+/-0.002) for {'C': 10000, 'degree': 3, 'kernel': 'poly'}
0.986 (+/-0.006) for {'C': 10000, 'degree': 4, 'kernel': 'poly'}

Detailed classification report:

The model is trained on the full development set.
The scores are computed on the full evaluation set.

Scoring =  accuracy
             precision    recall  f1-score   support

          4       0.99      0.99      0.99       982
          9       0.99      0.99      0.99      1009

avg / total       0.99      0.99      0.99      1991



In [ ]: