《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數據挖掘》筆記(一)擴展你的數據挖掘工具箱BrianZhang:《Python數據挖掘》筆記(三)實體匹配BrianZhang:《Python數據挖掘》筆記(四) 網路分析BrianZhang:《Python數據挖掘》筆記(五) 文本情緒分析BrianZhang:《Python數據挖掘》筆記(六) 文本中的命名實體識別BrianZhang:《Python數據挖掘》筆記(七) 自動化文本摘要BrianZhang:《Python數據挖掘》筆記(八)文本中的主題建模BrianZhang:《Python數據挖掘》筆記(九)挖掘數據異常軟體開發之路
推薦閱讀:
※數據挖掘進階:kaggle競賽top代碼分享
※scrapy不支持python3嗎?有解決的辦法嗎?
※visual studio code寫Python無法自動補全?
※python 3.4 下載了PIL第三方模塊,whl格式,如何安裝?