def test_confidence(self): db = CsvDatabase(self.path) a1 = AttributeValue('age', 'young') a2 = AttributeValue('spectacle-prescrip', 'myope') a3 = AttributeValue('astigmatism', 'yes') set1 = ItemSet.create_itemset(a1, a2) set2 = ItemSet.create_itemset(a3) self.assertEqual(db.confidence(set1, set2), 2 / 4)
def test_support_count(self): db = CsvDatabase(self.path) a1 = AttributeValue('age', 'young') a2 = AttributeValue('spectacle-prescrip', 'myope') set1 = ItemSet.create_itemset(a1) self.assertEqual(db.support_count(set1), 8) set2 = ItemSet.create_itemset(a1, a2) self.assertEqual(db.support_count(set2), 4) self.assertEqual(db.counter, 5)
def test_generate_rule_confidence(self): db = CsvDatabase(self.path) a1 = AttributeValue('age', 'young') a2 = AttributeValue('spectacle-prescrip', 'myope') a3 = AttributeValue('astigmatism', 'yes') a4 = AttributeValue('tear-prod-rate', 'reduced') itemset = ItemSet.create_itemset(a1, a2, a3, a4) apriori = Apriori(db, 0, 0.5, 100) rules = apriori.generate_confident_rules(itemset) self.assertEqual(len(rules), 3)
def test_join(self): a1 = AttributeValue('age', 'young') a2 = AttributeValue('age', 'pre-presbyopic') a3 = AttributeValue('age', 'presbyopic') a4 = AttributeValue('contact-lenses', 'none') set1 = ItemSet.create_itemset(a1, a2, a3) set2 = ItemSet.create_itemset(a1, a4) set3 = set2.join(set1) self.assertEqual(len(set3.items), 4) self.assertTrue(a1 in set3.items) self.assertTrue(a2 in set3.items) self.assertTrue(a3 in set3.items) self.assertTrue(a4 in set3.items)
def get_distinct_attr_values(self): super().increase_counter() attr_values = [] for attr in self.df.columns: for value in self.df[attr].unique(): attr_values.append(AttributeValue(attr, value)) return attr_values
def test_diff(self): a1 = AttributeValue('age', 'young') a2 = AttributeValue('age', 'pre-presbyopic') a3 = AttributeValue('age', 'presbyopic') a4 = AttributeValue('contact-lenses', 'none') set1 = ItemSet.create_itemset(a1, a2, a3) set2 = ItemSet.create_itemset(a2, a3, a4) set3 = ItemSet.create_itemset(a1, a4) set4 = ItemSet.create_itemset() self.assertEqual( set1.diff(set2), 2, '{0} and {1} does not have correct diff'.format(set1, set2)) self.assertEqual( set2.diff(set3), 3, '{0} and {1} does not have correct diff'.format(set2, set3)) self.assertEqual( set3.diff(set4), 2, '{0} and n{1} does not have correct diff'.format(set3, set4)) self.assertEqual( set4.diff(set1), 3, '{0} and {1} does not have correct diff'.format(set4, set1))
def test_equality(self): a1 = AttributeValue('age', 'young') a2 = AttributeValue('age', 'pre-presbyopic') set1 = ItemSet.create_itemset(a1, a2) set2 = ItemSet.create_itemset(a2, a1) self.assertEqual(set1, set2)
def _check(self, attr, value, attr_values): self.assertTrue(AttributeValue(attr, value) in attr_values)
def test_equality(self): a1 = AttributeValue('a', 1) a2 = AttributeValue('a', 1) self.assertEqual(a1, a2)