def test_MissingPredictions(self): qa = {"P1": "E", "P2": "N", "P3": "N"} p = {"P1": "E", "P2": "N"} with self.assertRaises(SystemExit) as context: evaluator.calculate_accuracy(qa, p) self.assertEqual(context.exception.code, evaluator.EXIT_STATUS_PREDICTION_MISSING)
def main(): print 'Accuracies' print 'k\tBinary \tMulticlass' for k in range(3, 7): # 2 class classification X_train, y_train = preprocessor.get_binary_train_features(k) mlr_model = logisticRegression.perform_binary_logistic_regression( X_train, y_train) X_test, y_test = preprocessor.get_binary_test_features(k) pred_y = mlr_model.predict(X_test) binary_accuracy = evaluator.calculate_accuracy(y_test, pred_y) binary_accuracy = round(binary_accuracy, 2) #Classification with 3 classes X_train, y_train = preprocessor.get_multiclass_train_features(k) mlr_model = logisticRegression.perform_multiclass_logistic_regression( X_train, y_train) X_test, y_test = preprocessor.get_multiclass_test_features(k) pred_y = mlr_model.predict(X_test) multiclass_accuracy = evaluator.calculate_accuracy(y_test, pred_y) multiclass_accuracy = round(multiclass_accuracy, 2) print str(k) + '\t' + str(binary_accuracy) + ' \t' + str( multiclass_accuracy)
def test_ExtraPredictions(self): qa = {"Q1": "A", "Q2": "A", "Q3": "A"} p = {"Q1": ["A"], "Q2": ["A"], "Q3": ["B"], "QExtra": ["X"]} with self.assertRaises(SystemExit) as context: evaluator.calculate_accuracy(qa, p) self.assertEqual(context.exception.code, evaluator.EXIT_STATUS_PREDICTIONS_EXTRA)
def main(): print 'Accuracies' print 'k\tBinary \tMulticlass' for k in range(3,7): # 2 class classification X_train, y_train = preprocessor.get_binary_train_features(k) mlr_model = logisticRegression.perform_binary_logistic_regression(X_train, y_train) X_test, y_test = preprocessor.get_binary_test_features(k) pred_y = mlr_model.predict(X_test) binary_accuracy = evaluator.calculate_accuracy(y_test, pred_y) binary_accuracy = round(binary_accuracy, 2) #Classification with 3 classes X_train, y_train = preprocessor.get_multiclass_train_features(k) mlr_model = logisticRegression.perform_multiclass_logistic_regression(X_train, y_train) X_test, y_test = preprocessor.get_multiclass_test_features(k) pred_y = mlr_model.predict(X_test) multiclass_accuracy = evaluator.calculate_accuracy(y_test, pred_y) multiclass_accuracy = round(multiclass_accuracy, 2) print str(k) + '\t' + str(binary_accuracy) + ' \t' + str(multiclass_accuracy)
def test_EverythingCorrect(self): qa = {"P1": "E", "P2": "N", "P3": "N"} p = {"P1": "E", "P2": "N", "P3": "N"} self.assertEqual(3.0 / 3.0, evaluator.calculate_accuracy(qa, p))
def test_MixedResults(self): qa = {"P1": "E", "P2": "N", "P3": "N"} p = {"P1": "E", "P2": "N", "P3": "E"} self.assertEqual(2.0 / 3.0, evaluator.calculate_accuracy(qa, p))
def test_EverythingCorrect(self): qa = {"Q1": "A", "Q2": "A", "Q3": "A"} p = {"Q1": ["A"], "Q2": ["A"], "Q3": ["A"]} self.assertEqual(3.0 / 3.0, evaluator.calculate_accuracy(qa, p))
def test_PartialGuess(self): qa = {"Q1": "A", "Q2": "A", "Q3": "A"} p = {"Q1": ["A", "B"], "Q2": ["B"], "Q3": ["B"]} self.assertEqual(0.5 / 3, evaluator.calculate_accuracy(qa, p))
def test_MixedResults(self): qa = {"Q1": "A", "Q2": "A", "Q3": "A"} p = {"Q1": ["A"], "Q2": ["A"], "Q3": ["B"]} self.assertEqual(2.0 / 3.0, evaluator.calculate_accuracy(qa, p))