Ignore:
Timestamp:
03/02/12 12:16:43 (2 years ago)
Author:
anzeh <anze.staric@…>
Branch:
default
Message:

Scoring functions ((based on confusion matrices) are now classes, but documented as functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/testing/unit/tests/test_evaluation_scoring.py

    r10293 r10425  
    170170        self.assertTrue(hasattr(cm[0], "TP")) 
    171171 
    172  
    173 class TestConfusionMatrix(unittest.TestCase): 
    174     def test_construct_confusion_matrix_from_multiclass(self): 
    175         learner = random_learner 
    176         ds = data.Table("iris") 
    177         pt = testing.proportion_test([learner], ds, times=1) 
    178         cm = scoring.confusion_matrices(pt) 
    179  
    180         self.assertTrue(isinstance(cm[0], list)) 
    181  
    182  
    183     def test_construct_confusion_matrix_from_biclass(self): 
     172class CMScoreTest(object): 
     173    def test_with_test_results_on_biclass(self): 
     174        learner = random_learner 
     175        ds = data.Table("monks-1") 
     176        pt = testing.proportion_test([learner], ds, times=1) 
     177        scores = self.score(pt) 
     178        self.assertIsInstance(scores, list) 
     179 
     180    def test_with_test_results_on_multiclass(self): 
     181        learner = random_learner 
     182        ds = data.Table("iris") 
     183        pt = testing.proportion_test([learner], ds, times=1) 
     184 
     185        scores = self.score(pt) 
     186        self.assertIsInstance(scores, list) 
     187 
     188    def test_with_confusion_matrix_on_biclass(self): 
    184189        learner = random_learner 
    185190        ds = data.Table("monks-1") 
    186191        pt = testing.proportion_test([learner], ds, times=1) 
    187192        cm = scoring.confusion_matrices(pt, class_index=1) 
    188  
    189         self.assertTrue(hasattr(cm[0], "TP")) 
    190  
     193        scores = self.score(cm) 
     194        self.assertIsInstance(scores, list) 
     195 
     196    def test_with_confusion_matrix_on_multiclass(self): 
     197        learner = random_learner 
     198        ds = data.Table("iris") 
     199        pt = testing.proportion_test([learner], ds, times=1) 
     200        cm = scoring.confusion_matrices(pt, class_index=1) 
     201        scores = self.score(cm) 
     202        self.assertIsInstance(scores, list) 
     203 
     204class TestSensitivity(CMScoreTest, unittest.TestCase): 
     205    @property 
     206    def score(self): 
     207        return scoring.Sensitivity 
     208 
     209class TestSpecificity(CMScoreTest, unittest.TestCase): 
     210    @property 
     211    def score(self): 
     212        return scoring.Specificity 
     213 
     214class TestPrecision(CMScoreTest, unittest.TestCase): 
     215    @property 
     216    def score(self): 
     217        return scoring.Precision 
     218 
     219class TestRecall(CMScoreTest, unittest.TestCase): 
     220    @property 
     221    def score(self): 
     222        return scoring.Recall 
     223 
     224class TestPPV(CMScoreTest, unittest.TestCase): 
     225    @property 
     226    def score(self): 
     227        return scoring.PPV 
     228 
     229class TestNPV(CMScoreTest, unittest.TestCase): 
     230    @property 
     231    def score(self): 
     232        return scoring.NPV 
     233 
     234class TestF1(CMScoreTest, unittest.TestCase): 
     235    @property 
     236    def score(self): 
     237        return scoring.F1 
     238 
     239class TestFalpha(CMScoreTest, unittest.TestCase): 
     240    @property 
     241    def score(self): 
     242        return scoring.Falpha 
     243 
     244class TestMCC(CMScoreTest, unittest.TestCase): 
     245    @property 
     246    def score(self): 
     247        return scoring.MCC 
    191248if __name__ == '__main__': 
    192249    unittest.main() 
Note: See TracChangeset for help on using the changeset viewer.