def test_log_reg(self): # python tests_classification.py Tests_Classification.test_log_reg from discomll.classification import logistic_regression train_data1, test_data1 = datasets.breastcancer_cont_orange() train_data2, test_data2 = datasets.breastcancer_cont_discomll() learner = Orange.classification.logreg.LogRegLearner(fitter=Orange.classification.logreg.LogRegFitter_Cholesky) classifier = learner(train_data1) thetas1 = classifier.beta predictions1 = [] probabilities1 = [] for inst in test_data1: target, probs = classifier(inst, Orange.classification.Classifier.GetBoth) predictions1.append(target.value) probabilities1.append(probs.values()) thetas_url = logistic_regression.fit(train_data2, alpha=1e-8, max_iterations=10) thetas2 = [v for k, v in result_iterator(thetas_url["logreg_fitmodel"]) if k == "thetas"] results_url = logistic_regression.predict(test_data2, thetas_url) predictions2 = [] probabilities2 = [] for k, v in result_iterator(results_url): predictions2.append(v[0]) probabilities2.append(v[1]) self.assertTrue(np.allclose(thetas1, thetas2)) self.assertTrue(np.allclose(probabilities1, probabilities2, atol=1e-5)) self.assertListEqual(predictions1, predictions2)
def test_naivebayes_breastcancer_cont(self): # python -m unittest tests_classification.Tests_Classification.test_naivebayes_breastcancer_cont from sklearn.naive_bayes import GaussianNB from discomll.classification import naivebayes x_train, y_train, x_test, y_test = datasets.breastcancer_cont(replication=1) train_data, test_data = datasets.breastcancer_cont_discomll(replication=1) clf = GaussianNB() probs_log1 = clf.fit(x_train, y_train).predict_proba(x_test) fitmodel_url = naivebayes.fit(train_data) prediction_url = naivebayes.predict(test_data, fitmodel_url) probs_log2 = [v[1] for _, v in result_iterator(prediction_url)] self.assertTrue(np.allclose(probs_log1, probs_log2, atol=1e-8))