Skip to content

Commit

Permalink
Merge pull request #924 from VesnaT/test_logloss
Browse files Browse the repository at this point in the history
LogLoss: Unittest
  • Loading branch information
lanzagar committed Dec 15, 2015
2 parents 392f5a7 + c5e413c commit 4b5cdb1
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions Orange/tests/test_evaluation_scoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ def test_constant_prob(self):

def test_multiclass_auc_multi_learners(self):
data = Orange.data.Table('iris')
learners = [Orange.classification.LogisticRegressionLearner(), Orange.classification.MajorityLearner()]
learners = [Orange.classification.LogisticRegressionLearner(),
Orange.classification.MajorityLearner()]
res = Orange.evaluation.testing.CrossValidation(data, learners, k=10)
self.assertTrue(AUC(res)[0] > 0.6 > AUC(res)[1] > 0.4)

Expand Down Expand Up @@ -141,7 +142,8 @@ def test_cd_score(self):
cd = Orange.evaluation.scoring.compute_CD(avranks, 30)
np.testing.assert_almost_equal(cd, 0.856344)

cd = Orange.evaluation.scoring.compute_CD(avranks, 30, test="bonferroni-dunn")
cd = Orange.evaluation.scoring.compute_CD(avranks, 30,
test="bonferroni-dunn")
np.testing.assert_almost_equal(cd, 0.798)


Expand All @@ -153,6 +155,25 @@ def test_log_loss(self):
ll = Orange.evaluation.LogLoss(results)
self.assertAlmostEqual(ll[0], - np.log(1 / 3))

def _log_loss(self, act, prob):
ll = np.dot(np.log(prob[:, 0]), act[:, 0]) + \
np.dot(np.log(prob[:, 1]), act[:, 1])
return - ll / len(act)

def test_log_loss_calc(self):
data = Orange.data.Table('titanic')
learner = Orange.classification.LogisticRegressionLearner()
results = Orange.evaluation.TestOnTrainingData(data, [learner])

actual = np.copy(results.actual)
actual = actual.reshape(actual.shape[0], 1)
actual = np.hstack((1 - actual, actual))
probab = results.probabilities[0]

ll_calc = self._log_loss(actual, probab)
ll_orange = Orange.evaluation.LogLoss(results)
self.assertEqual(ll_calc, ll_orange[0])


class Scoring_F1_Test(unittest.TestCase):
def test_F1_multiclass(self):
Expand Down

0 comments on commit 4b5cdb1

Please sign in to comment.