Beispiel #1
0
    def testOneToOne(self):
        data = [
            association_rules.Itemset(['a'], 4),
            association_rules.Itemset(['b'], 2),
            association_rules.Itemset(['a', 'b'], 2),
        ]
        actual = association_rules.find_association_rules(data, 0.1)

        expected = [
            association_rules.Rule(['b'], ['a'], 2, 1.0),
            association_rules.Rule(['a'], ['b'], 4, 0.5),
        ]
        self.assertEqual(expected, actual)
Beispiel #2
0
    def testUnorderedTwoFrequentItemset(self):
        rows = [
            ['b', 'a'],
            ['c', 'b'],
            ['a', 'b'],
        ]
        actual = association_rules.find_frequent_itemsets(rows, 2, 10)

        expected = [
            association_rules.Itemset(['a'], 2),
            association_rules.Itemset(['b'], 3),
            association_rules.Itemset(['a', 'b'], 2),
        ]
        self.assertEqual(expected, actual)
Beispiel #3
0
    def testThreeFrequentItemset(self):
        rows = [
            ['a', 'b', 'c', 'd'],
            ['a', 'b', 'c', 'e'],
            ['a', 'b', 'd', 'f'],
        ]
        actual = association_rules.find_frequent_itemsets(rows, 2, 10)

        expected = [
            association_rules.Itemset(['a'], 3),
            association_rules.Itemset(['b'], 3),
            association_rules.Itemset(['c'], 2),
            association_rules.Itemset(['d'], 2),
            association_rules.Itemset(['a', 'b'], 3),
            association_rules.Itemset(['a', 'c'], 2),
            association_rules.Itemset(['a', 'd'], 2),
            association_rules.Itemset(['b', 'c'], 2),
            association_rules.Itemset(['b', 'd'], 2),
            association_rules.Itemset(['a', 'b', 'c'], 2),
            association_rules.Itemset(['a', 'b', 'd'], 2),
        ]
        self.assertEqual(len(expected), len(actual))
        for i in range(len(expected)):
            e = expected[i]
            a = actual[i]
            self.assertEqual(e, a, '%s != %s' % (str(e), str(a)))
Beispiel #4
0
 def testNormal(self):
     a = association_rules.Itemset(['a'], 4)
     ab = association_rules.Itemset(['a', 'b'], 2)
     self.assertTrue(a.issubset(ab))
     self.assertFalse(ab.issubset(a))