In [1]:
from time import time
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.datasets import fetch_mldata
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from sknn.mlp import Classifier, Layer
In [2]:
np.set_printoptions(precision=4)
np.set_printoptions(suppress=True)
In [3]:
mnist = fetch_mldata('mnist-original')
X_train, X_test, y_train, y_test = train_test_split(
(mnist.data / 255.0).astype(np.float32),
mnist.target.astype(np.int32),
test_size=0.33, random_state=1234)
In [4]:
print "test data : %s rows %s columns" %(X_train.shape[0], X_train.shape[1])
print "test data : %s rows %s columns" %(X_test.shape[0], X_test.shape[1])
In [5]:
clf = Classifier(
layers=[Layer("Rectifier", units=300), Layer("Softmax")],
learning_rate=0.02,
learning_rule='momentum',
learning_momentum=0.9,
batch_size=25,
valid_size=0.0,
n_stable=10,
n_iter=10,
verbose=1,
)
In [8]:
t0 = time()
clf.fit(X_train, y_train)
print "escape time : ", round(time()-t0, 3), "s"
y_pred = clf.predict(X_test)
print "accuracy score : %s" %(accuracy_score(y_test, y_pred))
print "classification report : "
print classification_report(y_test, y_pred)
print "confusion matrix : "
print confusion_matrix(y_test, y_pred)
In [ ]: