eriklindernoren--ml-from-scratch
35 行
1.2 KiB
Python
35 行
1.2 KiB
Python
from __future__ import division, print_function
|
|
import numpy as np
|
|
|
|
from mlfromscratch.unsupervised_learning import Apriori
|
|
|
|
def main():
|
|
# Demo transaction set
|
|
# Example 2: https://en.wikipedia.org/wiki/Apriori_algorithm
|
|
transactions = np.array([[1, 2, 3, 4], [1, 2, 4], [1, 2], [2, 3, 4], [2, 3], [3, 4], [2, 4]])
|
|
print ("+-------------+")
|
|
print ("| Apriori |")
|
|
print ("+-------------+")
|
|
min_sup = 0.25
|
|
min_conf = 0.8
|
|
print ("Minimum Support: %.2f" % (min_sup))
|
|
print ("Minimum Confidence: %s" % (min_conf))
|
|
print ("Transactions:")
|
|
for transaction in transactions:
|
|
print ("\t%s" % transaction)
|
|
|
|
apriori = Apriori(min_sup=min_sup, min_conf=min_conf)
|
|
|
|
# Get and print the frequent itemsets
|
|
frequent_itemsets = apriori.find_frequent_itemsets(transactions)
|
|
print ("Frequent Itemsets:\n\t%s" % frequent_itemsets)
|
|
|
|
# Get and print the rules
|
|
rules = apriori.generate_rules(transactions)
|
|
print ("Rules:")
|
|
for rule in rules:
|
|
print ("\t%s -> %s (support: %.2f, confidence: %s)" % (rule.antecedent, rule.concequent, rule.support, rule.confidence,))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main() |