def main(): print('Loading data...') mnist = np.loadtxt('data/mnist_test.csv', delimiter=',') X_train = mnist[:len(mnist)//2, 1:] y_train = mnist[:len(mnist)//2, 0].astype(np.int) X_test = mnist[len(mnist)//2:, 1:] y_test = mnist[len(mnist)//2:, 0].astype(np.int) print('Training Sklearn OVR...') y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovr', X_train, y_train, X_test) print('Sklearn OVR Accuracy (train):', metrics.accuracy_score(y_train, y_pred_train)) print('Sklearn OVR Accuracy (test) :', metrics.accuracy_score(y_test, y_pred_test)) print('Training Sklearn OVO...') y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovo', X_train, y_train, X_test) print('Sklearn OVO Accuracy (train):', metrics.accuracy_score(y_train, y_pred_train)) print('Sklearn OVO Accuracy (test) :', metrics.accuracy_score(y_test, y_pred_test)) print('Training Sklearn Crammer-Singer...') y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'crammer', X_train, y_train, X_test) print('Sklearn Crammer-Singer Accuracy (train):', metrics.accuracy_score(y_train, y_pred_train)) print('Sklearn Crammer-Singer Accuracy (test) :', metrics.accuracy_score(y_test, y_pred_test)) print('Training self OVR...') self_ovr = MulticlassSVM('ovr') self_ovr.fit(X_train, y_train) print('Self OVR Accuracy (train):', metrics.accuracy_score(y_train, self_ovr.predict(X_train))) print('Self OVR Accuracy (test) :', metrics.accuracy_score(y_test, self_ovr.predict(X_test))) print('Training self OVO...') self_ovo = MulticlassSVM('ovo') self_ovo.fit(X_train, y_train) print('Self OVO Accuracy (train):', metrics.accuracy_score(y_train, self_ovo.predict(X_train))) print('Self OVO Accuracy (test) :', metrics.accuracy_score(y_test, self_ovo.predict(X_test))) print('Training self Crammer-Singer...') self_cs = MulticlassSVM('crammer-singer') self_cs.fit(X_train, y_train) print('Self Crammer-Singer Accuracy (train):', metrics.accuracy_score(y_train, self_cs.predict(X_train))) print('Self Crammer-Singer Accuracy (test) :', metrics.accuracy_score(y_test, self_cs.predict(X_test)))
def test_sklearn_crammer_accuracy(self): y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'crammer', self.X_train, self.y_train, self.X_test) train_acc = metrics.accuracy_score(self.y_train, y_pred_train) test_acc = metrics.accuracy_score(self.y_test, y_pred_test) self.assertTrue(abs(train_acc - 1.0) < 5e-3) self.assertTrue(abs(test_acc - 0.85825) < 5e-3)
def test_sklearn_ovo_accuracy(self): y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovo', self.X_train, self.y_train, self.X_test) train_acc = metrics.accuracy_score(self.y_train, y_pred_train) test_acc = metrics.accuracy_score(self.y_test, y_pred_test) self.assertTrue(abs(train_acc - 1.0) < 1e-6) self.assertTrue(abs(test_acc - 0.892625) < 1e-6)
def test_sklearn_ovr_accuracy(self): y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovr', self.X_train, self.y_train, self.X_test) train_acc = metrics.accuracy_score(self.y_train, y_pred_train) test_acc = metrics.accuracy_score(self.y_test, y_pred_test) self.assertTrue(abs(train_acc - 1.0) < 1e-6) print('test_acc = ' + str(test_acc)) self.assertTrue(abs(test_acc - 0.814875) < 1e-6)
def test_sklearn_ovr_accuracy(self): y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovr', self.X_train, self.y_train, self.X_test) train_acc = metrics.accuracy_score(self.y_train, y_pred_train) test_acc = metrics.accuracy_score(self.y_test, y_pred_test) print("my0 train_acc", abs(train_acc - 1.0)) print("my0 test_acc", abs(test_acc - 0.814875)) self.assertTrue(abs(train_acc - 1.0) < 5e-3) self.assertTrue(abs(test_acc - 0.814875) < 5e-3)
if __name__ == '__main__': print('Loading data...') mnist = np.loadtxt('data/mnist_test.csv', delimiter=',') X_train = mnist[:len(mnist) // 2, 1:] print(np.shape(X_train)) y_train = mnist[:len(mnist) // 2, 0].astype(np.int) print(y_train) X_test = mnist[len(mnist) // 2:, 1:] y_test = mnist[len(mnist) // 2:, 0].astype(np.int) print(np.shape(X_test)) print(np.shape(y_test)) print('Training Sklearn OVR...') y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovr', X_train, y_train, X_test) print('Sklearn OVR Accuracy (train):', metrics.accuracy_score(y_train, y_pred_train)) print('Sklearn OVR Accuracy (test) :', metrics.accuracy_score(y_test, y_pred_test)) print("pred_test result:", y_pred_test) print("pred test shape:", np.shape(y_pred_test)) print('Training Sklearn OVO...') y_pred_train, y_pred_test = sklearn_multiclass_prediction( 'ovo', X_train, y_train, X_test) print('Sklearn OVO Accuracy (train):', metrics.accuracy_score(y_train, y_pred_train)) print('Sklearn OVO Accuracy (test) :', metrics.accuracy_score(y_test, y_pred_test))