十八、Apriori算法介绍
生活随笔
收集整理的這篇文章主要介紹了
十八、Apriori算法介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 關聯規則挖掘
關聯規則挖掘定義
大多數關聯規則挖掘算法通常采用的一種策略是,將關聯規則挖掘任務分解為如下兩個主要的子任務:
- 頻繁項集產生(Frequent Itemset Generation)
其目標是發現滿足最小支持度閾值的所有項集,這些項集稱作頻繁項集。 - 規則的產生(Rule Generation)
其目標是從上一步發現的頻繁項集中提取所有高置信度的規則,這些規則稱作強規則。 - 關聯分析的目標
- 發現頻繁項集;
- 由頻繁項集產生強關聯規則,這些規則必須大于或等于最小支持度和最小置信度。
2 Apriori算法介紹
- Apriori算法的原理
- 通過限制候選產生發現頻發項集
- 由頻繁項集產生關聯規則
- Apriori算法的重要性質
- 性質1:頻繁項集的子集必為頻繁項集
如果{B,C}是頻繁的,那么{B},{C}也一定是頻繁的 - 性質2:非頻繁項集的超集一定是非頻繁的。
如果{A, B}是非頻繁的,那么{A, B, C},{A, B, C, D}也一定是頻繁的 - 使用Apriori算法發現頻繁項集
- 掃描數據集,得到所有出現過的數據,作為候選1項集
- 挖掘頻繁k項集
掃描計算候選k項集的支持度
剪枝去掉候選k項集中支持度低于最小支持度α的數據集,得到頻繁k項集。如果頻繁k項集為空,則返回頻繁k-1項集的集合作為算法結果,算法結束。
基于頻繁k項集,連接生成候選k+1項集 - 利用步驟2,迭代得到k=k+1項集結果
- **由頻繁項集產生關聯規則 **
產生關規則的過程如下: - 對于每個頻繁項集I,產生I的所有非空子集
- 對于I的每個非空子集s,如果support(l)/support(s) ≥min_conf,則輸出規則“s?(l-s)”。其中,min_conf是最小置信度閾值。
- Apriori算法的簡單實例
- Apriori算法舉例——發現頻發項集
- Apriori算法舉例——產生關聯規則
對于頻繁項集{B, C, E}, 它的非空子集有{B}, {C}, {E}, {B, C}, {B,E}, {C,E}.以下是據此獲得的關聯規則及其置信度
2.1 代碼實現
# *-* coding:utf-8 *-*import pandas as pd from mlxtend.preprocessing import TransactionEncoder from mlxtend.frequent_patterns import apriori from mlxtend.frequent_patterns import association_rulesdata_test = [['A', 'C', 'D'], ['B', 'C', 'E'], ['A', 'B', 'C', 'E'], ['B', 'E']]def create_data():dataset = [['Milk', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],['Dill', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],['Milk', 'Apple', 'Kidney Beans', 'Eggs'],['Milk', 'Unicorn', 'Corn', 'Kidney Beans', 'Yogurt'],['Corn', 'Onion', 'Onion', 'Kidney Beans', 'Ice cream', 'Eggs']]return datasetdef main():dataset = create_data()te = TransactionEncoder()te_ary = te.fit(dataset).transform(dataset)df = pd.DataFrame(te_ary, columns=te.columns_)frequent_itemsets = apriori(df, min_support=0.7, use_colnames=True)print(frequent_itemsets) # 頻繁項集rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7) # 關聯規則print(rules)if __name__ == '__main__':main()n_threshold=0.7) # 關聯規則
print(rules)
總結
以上是生活随笔為你收集整理的十八、Apriori算法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十七、频繁模式、关联和相关性的基本概念和
- 下一篇: 二十一、挖掘模式评估方法