亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解Python 關(guān)聯(lián)規(guī)則分析

瀏覽:8日期:2022-06-24 14:41:31
1. 關(guān)聯(lián)規(guī)則

大家可能聽(tīng)說(shuō)過(guò)用于宣傳數(shù)據(jù)挖掘的一個(gè)案例:啤酒和尿布;據(jù)說(shuō)是沃爾瑪超市在分析顧客的購(gòu)買(mǎi)記錄時(shí),發(fā)現(xiàn)許多客戶(hù)購(gòu)買(mǎi)啤酒的同時(shí)也會(huì)購(gòu)買(mǎi)嬰兒尿布,于是超市調(diào)整了啤酒和尿布的貨架擺放,讓這兩個(gè)品類(lèi)擺放在一起;結(jié)果這兩個(gè)品類(lèi)的銷(xiāo)量都有明顯的增長(zhǎng);分析原因是很多剛生小孩的男士在購(gòu)買(mǎi)的啤酒時(shí),會(huì)順手帶一些嬰幼兒用品。

不論這個(gè)案例是否是真實(shí)的,案例中分析顧客購(gòu)買(mǎi)記錄的方式就是關(guān)聯(lián)規(guī)則分析法Association Rules。

關(guān)聯(lián)規(guī)則分析也被稱(chēng)為購(gòu)物籃分析,用于分析數(shù)據(jù)集各項(xiàng)之間的關(guān)聯(lián)關(guān)系。

1.1 基本概念 項(xiàng)集:item的集合,如集合{牛奶、麥片、糖}是一個(gè)3項(xiàng)集,可以認(rèn)為是購(gòu)買(mǎi)記錄里物品的集合。 頻繁項(xiàng)集:顧名思義就是頻繁出現(xiàn)的item項(xiàng)的集合。如何定義頻繁呢?用比例來(lái)判定,關(guān)聯(lián)規(guī)則中采用支持度和置信度兩個(gè)概念來(lái)計(jì)算比例值 支持度:共同出現(xiàn)的項(xiàng)在整體項(xiàng)中的比例。以購(gòu)買(mǎi)記錄為例子,購(gòu)買(mǎi)記錄100條,如果商品A和B同時(shí)出現(xiàn)50條購(gòu)買(mǎi)記錄(即同時(shí)購(gòu)買(mǎi)A和B的記錄有50),那邊A和B這個(gè)2項(xiàng)集的支持度為50%

詳解Python 關(guān)聯(lián)規(guī)則分析

置信度:購(gòu)買(mǎi)A后再購(gòu)買(mǎi)B的條件概率,根據(jù)貝葉斯公式,可如下表示:

詳解Python 關(guān)聯(lián)規(guī)則分析

提升度:為了判斷產(chǎn)生規(guī)則的實(shí)際價(jià)值,即使用規(guī)則后商品出現(xiàn)的次數(shù)是否高于商品單獨(dú)出現(xiàn)的評(píng)率,提升度和衡量購(gòu)買(mǎi)X對(duì)購(gòu)買(mǎi)Y的概率的提升作用。如下公式可見(jiàn),如果X和Y相互獨(dú)立那么提升度為1,提升度越大,說(shuō)明X->Y的關(guān)聯(lián)性越強(qiáng)

詳解Python 關(guān)聯(lián)規(guī)則分析

1.2 關(guān)聯(lián)規(guī)則Apriori算法

關(guān)聯(lián)規(guī)則方法的步驟如下:

發(fā)現(xiàn)頻繁項(xiàng)集 找出關(guān)聯(lián)規(guī)則

Apriori算法是經(jīng)典的關(guān)聯(lián)規(guī)則算法。Apriori算法的目標(biāo)是找到最大的K項(xiàng)頻繁集。Apriori算法從尋找1項(xiàng)集開(kāi)始,通過(guò)最小支持度閾值進(jìn)行剪枝,依次尋找2項(xiàng)集,3項(xiàng)集直到?jīng)]有更過(guò)項(xiàng)集為止。

下面是一個(gè)案例圖解:

詳解Python 關(guān)聯(lián)規(guī)則分析

圖中有4個(gè)記錄,記錄項(xiàng)有1,2,3,4,5若干 首先先找出1項(xiàng)集對(duì)應(yīng)的支持度(C1),可以看出4的支持度低于最小支持閾值,先剪掉(L1)。 從1項(xiàng)集生成2項(xiàng)集,并計(jì)算支持度(C2),可以看出(1,5)(1,2)支持度低于最小支持閾值,先剪掉(L2) 從2項(xiàng)集生成3項(xiàng)集,(1,2,3)(1,2,5)(2,3,5)只有(2,3,5)滿足要求 沒(méi)有更多的項(xiàng)集了,就定制迭代 2. mlxtend實(shí)戰(zhàn)關(guān)聯(lián)規(guī)則

關(guān)聯(lián)規(guī)則目前在scikit-learn中并沒(méi)有實(shí)現(xiàn)。這里介紹另一個(gè)python庫(kù)mlxtend。

2.1 安裝

pip install mlxtend2.2 簡(jiǎn)單的例子

來(lái)看下數(shù)據(jù)集:

import pandas as pditem_list = [[’牛奶’,’面包’], [’面包’,’尿布’,’啤酒’,’土豆’], [’牛奶’,’尿布’,’啤酒’,’可樂(lè)’], [’面包’,’牛奶’,’尿布’,’啤酒’], [’面包’,’牛奶’,’尿布’,’可樂(lè)’]]item_df = pd.DataFrame(item_list)

數(shù)據(jù)格式處理,傳入模型的數(shù)據(jù)需要滿足bool值的格式

from mlxtend.preprocessing import TransactionEncodete = TransactionEncoder()df_tf = te.fit_transform(item_list)df = pd.DataFrame(df_tf,columns=te.columns_)

詳解Python 關(guān)聯(lián)規(guī)則分析

計(jì)算頻繁項(xiàng)集

from mlxtend.frequent_patterns import apriori# use_colnames=True表示使用元素名字,默認(rèn)的False使用列名代表元素, 設(shè)置最小支持度min_supportfrequent_itemsets = apriori(df, min_support=0.05, use_colnames=True)frequent_itemsets.sort_values(by=’support’, ascending=False, inplace=True)# 選擇2頻繁項(xiàng)集print(frequent_itemsets[frequent_itemsets.itemsets.apply(lambda x: len(x)) == 2])

詳解Python 關(guān)聯(lián)規(guī)則分析

計(jì)算關(guān)聯(lián)規(guī)則

from mlxtend.frequent_patterns import association_rules# metric可以有很多的度量選項(xiàng),返回的表列名都可以作為參數(shù)association_rule = association_rules(frequent_itemsets,metric=’confidence’,min_threshold=0.9)#關(guān)聯(lián)規(guī)則可以提升度排序association_rule.sort_values(by=’lift’,ascending=False,inplace=True) association_rule# 規(guī)則是:antecedents->consequents

詳解Python 關(guān)聯(lián)規(guī)則分析

選擇出來(lái)關(guān)聯(lián)規(guī)則之后,根據(jù)提升度排序后,可能最高提升度的規(guī)則是在我們常識(shí)范圍內(nèi),那這個(gè)規(guī)則的價(jià)值就不高。所以我們要在產(chǎn)生的規(guī)則中根據(jù)業(yè)務(wù)特點(diǎn)進(jìn)行篩選,像開(kāi)篇提到(啤酒->尿布)完全不同的品類(lèi)之間的關(guān)聯(lián)。

筆者最近用關(guān)聯(lián)規(guī)則分析用戶(hù)的體檢報(bào)告記錄,也得出了關(guān)于各個(gè)病癥的有意義的關(guān)聯(lián),如并發(fā)癥,不同病癥相互影響等。

3. 總結(jié)

本分介紹關(guān)聯(lián)規(guī)則的基本概念和經(jīng)典算法Apriori,以及python的實(shí)現(xiàn)庫(kù)mlxtend使用。

總結(jié)如下:

關(guān)聯(lián)規(guī)則用于分析數(shù)據(jù)集各項(xiàng)之間的關(guān)聯(lián)關(guān)系,想一想啤酒和尿布的故事 三個(gè)重要概念:支持度,置信度和提升度 Apriori通過(guò)迭代先找1項(xiàng)集,用支持度過(guò)濾項(xiàng)集,逐步找出所有k項(xiàng)集 用置信度或提升度來(lái)選擇滿足的要求的規(guī)則 mlxtend對(duì)數(shù)據(jù)要求轉(zhuǎn)換成bool值才可用

以上就是詳解Python 關(guān)聯(lián)規(guī)則分析的詳細(xì)內(nèi)容,更多關(guān)于Python 關(guān)聯(lián)規(guī)則分析的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产精品一区二区免费 | 久久久精品久久久久久久久久久 | 亚洲成人网在线播放 | 欧美草逼网 | 日本888xxxx | 色天使色婷婷丁香久久综合 | 国产精品激情福利视频 | 免费jizz在在线播放国产 | 美女一级牲交毛片视频 | 国产精品久久久久久久久久久不卡 | 久久综合一 | 国产精品原创永久在线观看 | 国产在线视频在线 | 国产在视频线精品视频二代 | 欧美一级毛片aaa片 欧美一级毛片一 | 免费黄色网页 | 黄色成年 | 国产精品永久免费视频观看 | 欧美一级做一级爱a做片性 欧美一级做一级做片性十三 | 亚洲综合精品香蕉久久网 | 91在线视频免费播放 | 日本大片久久久高清免费看 | 免费中文字幕在线 | 一级片免费视频 | 女人被狂躁后的视频免费 | 特黄一级大片 | 一级特级欧美a毛片免费 | 视频免费网站 | 国产高清在线精品一区二区 | 唐人社区精品视频 | 成人在线免费观看视频 | 亚洲欧美精品一区二区 | 99久久免费看精品国产一区 | 国产精品无码永久免费888 | 免费看一级视频 | 欧美一级黄色录相 | 美国特黄特色的免费大片 | 国产精品一国产精品免费 | 免费观看污污视频 | 成人黄色在线观看 | 免费看国产一级特黄aa大片 |