Python關聯分析之——Apriori演算法

來源:互聯網
上載者:User
使用Apriori演算法進行關聯分析 Apriori原理

如果某個項集是頻繁的,那麼它的所有子集也是頻繁的。即如果{0,1}是頻繁的,則{0},{1}也是頻繁的。

這個原理直觀上並沒有什麼協助,但如果反過來看,就有用了。

如果某個項集是非頻繁的,那麼它的所有超集也是非頻繁的。即如果{0}也是非頻繁的,則包含{0}的所有超集如{0,1}也是非頻繁的。 重要定義

# 測試項集:    [['豆奶','萵苣'],     ['萵苣','尿布','葡萄酒','甜菜'],     ['豆奶','尿布','葡萄酒','橙汁'],     ['萵苣','豆奶','尿布','葡萄酒'],     ['萵苣','豆奶','尿布','橙汁']]
支援度(support)

一個項集的支援度,被定為為資料集中包含該項集的記錄所佔的比例,例如上面的測試資料,{豆奶}的支援度為4/5,而在5條記錄中,有3條包含{豆奶,尿布},因此{豆奶,尿布}的支援度為3/5。支援度是針對項集來說的,因此可以定義一個最小支援度,而只保留滿足最小支援度的項集。 可信度或信賴度(confidence)

信賴度是針對一條諸如{尿布}→{葡萄酒}的關聯規則來定義的。這條規則的可信度被定義為“支援度({尿布,葡萄酒})/支援度({尿布})”。上例中,由於{尿布,葡萄酒}的支援度為3/5,{尿布}的支援度為4/5,所以“尿布→葡萄酒”的可信度為3/4=0.75。 python實現

安裝對應庫

開啟命令列視窗,輸入

pip install apyori

若失敗,可使用其他方法。

測試安裝:

from apyori import apriori

匯入成功,則安裝成功,否則失敗。

API

from apyori import aprioridata = [['豆奶','萵苣'],        ['萵苣','尿布','葡萄酒','甜菜'],        ['豆奶','尿布','葡萄酒','橙汁'],        ['萵苣','豆奶','尿布','葡萄酒'],        ['萵苣','豆奶','尿布','橙汁']]result = list(apriori(transactions=data)# apriori其他參數說明:min_support -- The minimum support of relations (float).最小支援度,可用來篩選項集min_confidence -- The minimum confidence of relations (float).最小可信度,可用來篩選項集min_lift -- The minimum lift of relations (float).未知max_length -- The maximum length of the relation (integer).未知

上面得到的result是一個列表,由於沒找到相關的文檔,下面是我所能理解的元素的屬性介紹。

result裡每一個項集的屬性介紹 items – 項集,frozenset對象,可迭代取出子集。 support – 支援度,float類型。 confidence – 信賴度或可信度, float類型。 ordered_statistics – 存在的關聯規則
可迭代,迭代後,其元素的屬性:
items_base – 關聯規則中的分母項集 confidence – 上面的分母規則所對應的關聯規則的可信度 結尾

好了,簡單的筆記就寫到這。雖然暫時沒找到這個庫對應的文檔,但可以通過pycharm預覽每個項集的屬性。雖然不能直接得出關聯規則排序,但不需要自己寫演算法來計算支援度,比自己寫計算過程好多了。 注意

Apriori演算法不適用於非重複項集數元素較多的案例,如果某商店的銷售商品種類是N,則其所有子集的個數為2^N - 1,其運算量之大,可想而知,建議分析的商品種類<10種。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.