def test_fit_no_hold(self): mv_obj = MajorityVote(hold_out=False) result = mv_obj.fit(MED_MATRIX) self.assertTrue(result['labels'][0] == 3) self.assertTrue(result['labels'][1] == 3) self.assertTrue(result['labels'][2] == 3) self.assertTrue(result['labels'][3] == 2) self.assertTrue(result['labels'][4] == 2) self.assertTrue(result['labels'][5] == 1) self.assertTrue(result['labels'][6] == 1) self.assertTrue(result['labels'][7] == 3) self.assertTrue(result['labels'][8] == 1 or result['labels'][8] == 4) self.assertTrue(result['labels'][9] == 1 or result['labels'][9] == 2) self.assertTrue(result['accuracies'][0] in [0.4, 0.5, 0.6]) self.assertTrue(result['accuracies'][1] in [0.4]) self.assertTrue(result['accuracies'][2] in [0.4, 0.5, 0.6]) self.assertTrue(result['accuracies'][3] in [0.7, 0.8, 0.9]) self.assertTrue(result['accuracies'][4] in [0.7, 0.8, 0.9]) self.assertListEqual(result['class_names'].tolist(), [1, 2, 3, 4])
def test_fit(self): # Since some labels are tied for most popular, pass a fixed random seed mv_obj = MajorityVote(hold_out=True) result = mv_obj.fit(MED_MATRIX) self.assertTrue(result['labels'][0] == 3) self.assertTrue(result['labels'][1] == 3) self.assertTrue(result['labels'][2] == 3) self.assertTrue(result['labels'][3] == 2) self.assertTrue(result['labels'][4] == 2) self.assertTrue(result['labels'][5] == 1) self.assertTrue(result['labels'][6] == 1) self.assertTrue(result['labels'][7] == 3) self.assertTrue(result['labels'][8] == 1 or result['labels'][8] == 4) self.assertTrue(result['labels'][9] == 1 or result['labels'][9] == 2) self.assertTrue(result['accuracies'][0] in [0.3, 0.4]) self.assertTrue(result['accuracies'][1] in [0.3, 0.4]) self.assertTrue(result['accuracies'][2] in [0.4]) self.assertTrue(result['accuracies'][3] in [0.5, 0.6, 0.7]) self.assertTrue(result['accuracies'][4] in [0.4, 0.5, 0.6, 0.7]) self.assertListEqual(result['class_names'].tolist(), [1, 2, 3, 4])
def test_fit_no_hold(self): mv_obj = MajorityVote(hold_out=False) result = mv_obj.fit(MED_MATRIX) self.assertTrue(result['labels'][0] == 'C') self.assertTrue(result['labels'][1] == 'C') self.assertTrue(result['labels'][2] == 'C') self.assertTrue(result['labels'][3] == 'B') self.assertTrue(result['labels'][4] == 'B') self.assertTrue(result['labels'][5] == 'A') self.assertTrue(result['labels'][6] == 'A') self.assertTrue(result['labels'][7] == 'C') self.assertTrue(result['labels'][8] == 'A') self.assertTrue(result['labels'][9] == 'A' or result['labels'][9] == 'B') self.assertTrue(result['accuracies'][0] in [4.0 / 9.0, 5.0 / 9.0]) self.assertTrue(result['accuracies'][1] in [0.4]) self.assertTrue(result['accuracies'][2] in [0.5, 0.6]) self.assertTrue(result['accuracies'][3] in [0.8, 0.9]) self.assertTrue(result['accuracies'][4] in [7.0 / 9.0, 8.0 / 9.0]) self.assertListEqual(result['class_names'].tolist(), ['A', 'B', 'C', 'D'])
def test_fit(self): # Since some labels are tied for most popular, pass a fixed random seed mv_obj = MajorityVote(hold_out=True) result = mv_obj.fit(MED_MATRIX) print(result['accuracies']) self.assertTrue(result['labels'][0] == 'C') self.assertTrue(result['labels'][1] == 'C') self.assertTrue(result['labels'][2] == 'C') self.assertTrue(result['labels'][3] == 'B') self.assertTrue(result['labels'][4] == 'B') self.assertTrue(result['labels'][5] == 'A') self.assertTrue(result['labels'][6] == 'A') self.assertTrue(result['labels'][7] == 'C') self.assertTrue(result['labels'][8] == 'A') self.assertTrue(result['labels'][9] == 'A' or result['labels'][9] == 'B') self.assertTrue(result['accuracies'][0] in [3.0 / 9.0, 4.0 / 9.0]) self.assertTrue(result['accuracies'][1] in [0.3, 0.4]) self.assertTrue(result['accuracies'][2] in [0.4, 0.5]) self.assertTrue(result['accuracies'][3] in [0.5, 0.6, 0.7, 0.8]) self.assertTrue(result['accuracies'][4] in [4.0 / 9.0, 5.0 / 9.0, 6.0 / 9.0, 7.0 / 9.0]) self.assertListEqual(result['class_names'].tolist(), ['A', 'B', 'C', 'D'])
def test_return_fields(self): mv_obj = MajorityVote() result = mv_obj.fit(MED_MATRIX) self.assertEqual(set(result.keys()), FIT_RETURN_SET)