《Python數據挖掘》筆記(二)關聯規則挖掘

Python數據挖掘:概念、方法與實踐。Megan Squire著,姚軍譯,機械工業出版社,2017年。

筆記中有些內容直接引用原書。

================================================================

2.1 什麼是頻繁項集

頻繁項集是數據集中出現頻率較高的項集。頻繁項集挖掘的目的是發現一組交易中共同出現的有趣項目組合。

2.1.1 都市傳奇「尿布與啤酒」

作者懷疑故事的真實性。

2.1.2 頻繁項集挖掘基礎知識

三個概念:市場、籃子、商品。

需要滿足的假設條件:

a. 商品和籃子之間是多對多的關係。

b. 不考慮商品的數量。

c. 某件商品可能不出現在任何一個籃子里,但是任何籃子都包含至少一件商品。

d. 籃子中商品的順序無關緊要。

有兩個項目的項集稱為2-項集或配對,有3個項目的項集稱為3-項集(或者三元組),以此類推。

2.2 邁向關聯規則

2.2.1 支持度

支持度表示項集出現的頻率。最小支持閾值決定了頻繁項集的評判標準。

2-項集的支持度通常用概率表示:

support(X->Y) = P(XuY)

2.2.2 置信度

confidence(X->Y) = P(X|Y) = support(XuY) / support(X)

2.2.3 關聯規則

從支持度和置信度,可以建立頻繁項集中項目之間的關聯規則。例如:香草威化->香蕉,奶油。[支持度=1%, 置信度=40%]。規則可以讀作:在所有籃子中,有1%包含香草威化、香蕉和生奶油的組合;在購買香草威化的客戶中,有40%同時購買了香蕉和生奶油。

規則左側是先導,右側是後繼。

2.2.4 包含數據的示例

2.2.5 附加值——修復計劃中的漏洞

避免有些商品自身的表現好於作為關聯規則後繼時的表現。通過附加值考慮其關聯的合理性。

附加值 = 規則置信度 – 右側的支持度

如果附加值是大的正數,那麼規則是好的、有用的。如果附加值接近於0,則這條規則可能是正確的,但是沒太大用處。如果附加值是大的負數,那麼規則中的商品實際上是負相關的,這時單獨使用表現會更好。

2.2.6 尋找頻繁項集的方法

快速尋找頻繁項集的一條重要原則:向上閉包屬性。向上閉包指的是,只有在項集的所有項目都頻繁出現時,該項集才是頻繁項集。

Apriori演算法:

a. 設置一個支持閾值

b. 構建一個1-項集列表,根據支持度得到SingletonList列表

c. 從SingletonList中選擇項集構建DoubletonList

d. 從DoubletonList中選擇項集構建TripletionList。

e. 重複d步,從前面構建的列表中的單項生成n-項集,直到頻繁集用完。

2.3 項目——發現軟體項目標籤中的關聯規則

Github代碼

2.4 小結

BrianZhang:《Python數據挖掘》筆記(一)擴展你的數據挖掘工具箱zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(三)實體匹配zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(四) 網路分析zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(五) 文本情緒分析zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(六) 文本中的命名實體識別zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(七) 自動化文本摘要zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(八)文本中的主題建模zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(九)挖掘數據異常zhuanlan.zhihu.com圖標軟體開發之路zhuanlan.zhihu.com圖標
推薦閱讀:

數據挖掘進階:kaggle競賽top代碼分享
scrapy不支持python3嗎?有解決的辦法嗎?
visual studio code寫Python無法自動補全?
python 3.4 下載了PIL第三方模塊,whl格式,如何安裝?

TAG:數據挖掘 | Python |