關聯規則算法Apriori的Python實現


首先導入包含apriori算法的mlxtend庫,

pip install mlxtend

調用apriori進行關聯規則分析,具體代碼如下,其中數據集選取本博客  “機器學習算法——關聯規則” 中的例子,可進行參考,設置最小支持度(min_support)為0.4,最小置信度(min_threshold)為0.1,

最小提升度(lift)為1.0,對數據集進行關聯規則分析,

from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
import pandas as pd

df_arr = [['蘋果','香蕉','鴨梨'],
        ['橘子','葡萄','蘋果','哈密瓜','火龍果'],
        ['香蕉','哈密瓜','火龍果','葡萄'],
        ['橘子','橡膠'],
        ['哈密瓜','鴨梨','葡萄']
        ]

#轉換為算法可接受模型(布爾值)
te = TransactionEncoder()
df_tf = te.fit_transform(df_arr)
df = pd.DataFrame(df_tf,columns=te.columns_)

#設置支持度求頻繁項集
frequent_itemsets = apriori(df,min_support=0.4,use_colnames= True)
#求關聯規則,設置最小置信度為0.15
rules = association_rules(frequent_itemsets,metric = 'confidence',min_threshold = 0.15)
#設置最小提升度
rules = rules.drop(rules[rules.lift <1.0].index)
#設置標題索引並打印結果
rules.rename(columns = {'antecedents':'from','consequents':'to','support':'sup','confidence':'conf'},inplace = True)
rules = rules[['from','to','sup','conf','lift']]
print(rules)
#rules為Dataframe格式,可根據自身需求存入文件

輸出結果如下:

          from          to  sup      conf      lift
0        (哈密瓜)       (火龍果)  0.4  0.666667  1.666667
1        (火龍果)       (哈密瓜)  0.4  1.000000  1.666667
2        (哈密瓜)        (葡萄)  0.6  1.000000  1.666667
3         (葡萄)       (哈密瓜)  0.6  1.000000  1.666667
4         (葡萄)       (火龍果)  0.4  0.666667  1.666667
5        (火龍果)        (葡萄)  0.4  1.000000  1.666667
6    (哈密瓜, 葡萄)       (火龍果)  0.4  0.666667  1.666667
7   (哈密瓜, 火龍果)        (葡萄)  0.4  1.000000  1.666667
8    (葡萄, 火龍果)       (哈密瓜)  0.4  1.000000  1.666667
9        (哈密瓜)   (葡萄, 火龍果)  0.4  0.666667  1.666667
10        (葡萄)  (哈密瓜, 火龍果)  0.4  0.666667  1.666667
11       (火龍果)   (哈密瓜, 葡萄)  0.4  1.000000  1.666667

Process finished with exit code 0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM