數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法_第1頁
數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法_第2頁
數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法_第3頁
數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法_第4頁
數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法1引言1.1關(guān)聯(lián)規(guī)則學(xué)習(xí)的重要性在大數(shù)據(jù)時(shí)代,數(shù)據(jù)挖掘技術(shù)成為從海量數(shù)據(jù)中提取有價(jià)值信息的關(guān)鍵工具。關(guān)聯(lián)規(guī)則學(xué)習(xí),作為數(shù)據(jù)挖掘領(lǐng)域的一種重要方法,主要用于發(fā)現(xiàn)數(shù)據(jù)集中項(xiàng)之間的有趣關(guān)聯(lián)或相關(guān)性。例如,在超市購物籃分析中,關(guān)聯(lián)規(guī)則可以幫助我們理解哪些商品經(jīng)常一起被購買,從而為營(yíng)銷策略提供依據(jù)。在醫(yī)療領(lǐng)域,關(guān)聯(lián)規(guī)則可以揭示疾病與癥狀之間的關(guān)聯(lián),輔助診斷和治療。因此,掌握關(guān)聯(lián)規(guī)則學(xué)習(xí)及其質(zhì)量評(píng)估方法對(duì)于數(shù)據(jù)分析人員來說至關(guān)重要。1.2關(guān)聯(lián)規(guī)則在數(shù)據(jù)挖掘中的應(yīng)用關(guān)聯(lián)規(guī)則在數(shù)據(jù)挖掘中的應(yīng)用廣泛,不僅限于市場(chǎng)籃子分析,還涵蓋了推薦系統(tǒng)、網(wǎng)絡(luò)日志分析、生物信息學(xué)等多個(gè)領(lǐng)域。例如,推薦系統(tǒng)可以通過分析用戶的歷史購買記錄,找出用戶可能感興趣的商品組合,從而提供個(gè)性化的推薦。網(wǎng)絡(luò)日志分析中,關(guān)聯(lián)規(guī)則可以幫助識(shí)別用戶訪問網(wǎng)站的模式,優(yōu)化網(wǎng)站布局和提高用戶體驗(yàn)。在生物信息學(xué)中,關(guān)聯(lián)規(guī)則用于發(fā)現(xiàn)基因表達(dá)數(shù)據(jù)中的模式,有助于理解基因之間的相互作用。1.2.1示例:市場(chǎng)籃子分析假設(shè)我們有以下超市購物數(shù)據(jù)集:交易ID商品1{牛奶,面包,黃油}2{牛奶,面包}3{面包,黃油}4{牛奶,黃油}5{牛奶,面包,黃油}我們想要找出商品之間的關(guān)聯(lián)規(guī)則。首先,我們需要定義一些關(guān)鍵概念:支持度(Support):一個(gè)項(xiàng)集在所有交易中出現(xiàn)的頻率。置信度(Confidence):規(guī)則A→B在所有包含A的交易中,同時(shí)包含B的交易的比例。提升度(Lift):規(guī)則A→B的支持度與A和B各自支持度的乘積的比值,用于評(píng)估規(guī)則的獨(dú)立性。使用Python的mlxtend庫,我們可以實(shí)現(xiàn)關(guān)聯(lián)規(guī)則學(xué)習(xí):frommlxtend.preprocessingimportTransactionEncoder

frommlxtend.frequent_patternsimportapriori,association_rules

#購物數(shù)據(jù)集

dataset=[['牛奶','面包','黃油'],

['牛奶','面包'],

['面包','黃油'],

['牛奶','黃油'],

['牛奶','面包','黃油']]

#數(shù)據(jù)預(yù)處理

te=TransactionEncoder()

te_ary=te.fit(dataset).transform(dataset)

df=pd.DataFrame(te_ary,columns=te.columns_)

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

frequent_itemsets=apriori(df,min_support=0.4,use_colnames=True)

print(frequent_itemsets)

#生成關(guān)聯(lián)規(guī)則

rules=association_rules(frequent_itemsets,metric="lift",min_threshold=1)

print(rules)運(yùn)行上述代碼,我們可以得到頻繁項(xiàng)集和支持度,以及關(guān)聯(lián)規(guī)則和其質(zhì)量評(píng)估指標(biāo)(如提升度)。這有助于我們理解哪些商品組合是常見的,以及這些組合之間的關(guān)聯(lián)強(qiáng)度。通過這個(gè)示例,我們不僅學(xué)習(xí)了關(guān)聯(lián)規(guī)則學(xué)習(xí)的基本流程,還了解了如何使用Python進(jìn)行實(shí)際操作,為后續(xù)深入學(xué)習(xí)和應(yīng)用打下了基礎(chǔ)。2關(guān)聯(lián)規(guī)則基礎(chǔ)2.1支持度與置信度的概念在關(guān)聯(lián)規(guī)則學(xué)習(xí)中,支持度(Support)和置信度(Confidence)是評(píng)估規(guī)則質(zhì)量的兩個(gè)關(guān)鍵指標(biāo)。2.1.1支持度支持度衡量一個(gè)項(xiàng)集在數(shù)據(jù)集中出現(xiàn)的頻率。如果一個(gè)項(xiàng)集A在數(shù)據(jù)集中出現(xiàn)的次數(shù)占總交易次數(shù)的比例較高,我們說A的支持度較高。支持度的計(jì)算公式如下:Support例如,假設(shè)我們有100個(gè)交易記錄,其中30個(gè)記錄包含商品A和B,那么項(xiàng)集{A,B}的支持度為30%。2.1.2置信度置信度衡量在包含項(xiàng)集A的交易中,同時(shí)包含項(xiàng)集B的概率。置信度的計(jì)算公式如下:Confidence繼續(xù)上面的例子,如果在包含商品A的交易中,有20個(gè)也包含商品B,那么規(guī)則A→B的置信度為20/30=66.7%。2.1.3示例代碼假設(shè)我們有以下交易數(shù)據(jù)集:transactions=[

['牛奶','面包','黃油'],

['面包','黃油'],

['牛奶','面包'],

['牛奶','黃油'],

['牛奶','面包','黃油'],

['面包'],

['牛奶','黃油'],

['牛奶','面包','黃油'],

['面包','黃油'],

['牛奶','面包']

]我們可以使用Python的mlxtend庫來計(jì)算支持度和置信度:frommlxtend.preprocessingimportTransactionEncoder

frommlxtend.frequent_patternsimportapriori,association_rules

#將交易數(shù)據(jù)轉(zhuǎn)換為one-hot編碼

te=TransactionEncoder()

te_ary=te.fit(transactions).transform(transactions)

df=pd.DataFrame(te_ary,columns=te.columns_)

#使用Apriori算法生成頻繁項(xiàng)集

frequent_itemsets=apriori(df,min_support=0.3,use_colnames=True)

#生成關(guān)聯(lián)規(guī)則

rules=association_rules(frequent_itemsets,metric="confidence",min_threshold=0.7)

#查看結(jié)果

print(rules)2.2頻繁項(xiàng)集與關(guān)聯(lián)規(guī)則的生成頻繁項(xiàng)集是指在數(shù)據(jù)集中支持度超過預(yù)設(shè)閾值的項(xiàng)集。關(guān)聯(lián)規(guī)則學(xué)習(xí)的目標(biāo)是從頻繁項(xiàng)集中發(fā)現(xiàn)有意義的關(guān)聯(lián)規(guī)則。2.2.1Apriori算法簡(jiǎn)介Apriori算法是一種用于挖掘頻繁項(xiàng)集的算法,其基本思想是利用頻繁項(xiàng)集的特性,即如果一個(gè)項(xiàng)集是頻繁的,那么它的所有子集也應(yīng)該是頻繁的。Apriori算法通過迭代的方式,從1-項(xiàng)集開始,逐步生成k-項(xiàng)集,直到?jīng)]有更多的頻繁項(xiàng)集為止。2.2.2示例代碼使用mlxtend庫中的Apriori算法生成頻繁項(xiàng)集:#使用Apriori算法生成頻繁項(xiàng)集

frequent_itemsets=apriori(df,min_support=0.3,use_colnames=True)

#查看頻繁項(xiàng)集

print(frequent_itemsets)然后,我們可以從這些頻繁項(xiàng)集中生成關(guān)聯(lián)規(guī)則:#生成關(guān)聯(lián)規(guī)則

rules=association_rules(frequent_itemsets,metric="confidence",min_threshold=0.7)

#查看關(guān)聯(lián)規(guī)則

print(rules)2.3總結(jié)通過上述內(nèi)容,我們了解了關(guān)聯(lián)規(guī)則學(xué)習(xí)中的支持度和置信度概念,以及如何使用Apriori算法生成頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則。這些知識(shí)對(duì)于進(jìn)行市場(chǎng)籃子分析、用戶行為分析等場(chǎng)景具有重要意義。請(qǐng)注意,上述總結(jié)部分是應(yīng)您的要求而省略的,但在實(shí)際教程中,總結(jié)部分可以幫助讀者回顧和鞏固所學(xué)知識(shí)。3數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法3.1提升度(Lift)的計(jì)算與解釋提升度(Lift)是一種評(píng)估關(guān)聯(lián)規(guī)則質(zhì)量的重要指標(biāo),它衡量了規(guī)則的關(guān)聯(lián)強(qiáng)度是否高于隨機(jī)事件的關(guān)聯(lián)強(qiáng)度。提升度的計(jì)算公式為:Lift3.1.1計(jì)算提升度的步驟計(jì)算規(guī)則的支持度:即規(guī)則“前提項(xiàng)->結(jié)果項(xiàng)”在數(shù)據(jù)集中出現(xiàn)的頻率。計(jì)算前提項(xiàng)和支持項(xiàng)的獨(dú)立支持度:分別計(jì)算前提項(xiàng)和結(jié)果項(xiàng)在數(shù)據(jù)集中出現(xiàn)的頻率。應(yīng)用公式計(jì)算提升度。3.1.2示例代碼假設(shè)我們有如下交易數(shù)據(jù)集:交易ID商品列表1{A,B,C}2{A,B}3{A,C}4{B,C}5{A,B,C}我們想要評(píng)估規(guī)則A->B的提升度。#導(dǎo)入必要的庫

frommlxtend.preprocessingimportTransactionEncoder

frommlxtend.frequent_patternsimportapriori,association_rules

#定義交易數(shù)據(jù)

dataset=[['A','B','C'],

['A','B'],

['A','C'],

['B','C'],

['A','B','C']]

#使用TransactionEncoder編碼數(shù)據(jù)

te=TransactionEncoder()

te_ary=te.fit(dataset).transform(dataset)

df=pd.DataFrame(te_ary,columns=te.columns_)

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

frequent_itemsets=apriori(df,min_support=0.3,use_colnames=True)

frequent_itemsets

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

rules=association_rules(frequent_itemsets,metric="lift",min_threshold=1)

rules[rules['antecedents']=={'A'}][['antecedents','consequents','support','confidence','lift']]3.1.3解釋在上述代碼中,我們首先定義了一個(gè)交易數(shù)據(jù)集,然后使用mlxtend庫中的TransactionEncoder對(duì)數(shù)據(jù)進(jìn)行編碼。接著,我們計(jì)算了頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則,其中association_rules函數(shù)的metric參數(shù)設(shè)置為"lift",以計(jì)算提升度。最后,我們篩選出以A為前提項(xiàng)的規(guī)則,并查看其支持度、置信度和提升度。3.2杠桿率(Leverage)的定義與應(yīng)用杠桿率(Leverage)衡量了規(guī)則的支持度與預(yù)期支持度之間的差異,即規(guī)則“前提項(xiàng)->結(jié)果項(xiàng)”在數(shù)據(jù)集中的實(shí)際出現(xiàn)頻率與假設(shè)前提項(xiàng)和結(jié)果項(xiàng)獨(dú)立時(shí)的預(yù)期出現(xiàn)頻率之間的差距。杠桿率的計(jì)算公式為:Leverage3.2.1計(jì)算杠桿率的步驟計(jì)算規(guī)則的支持度。計(jì)算前提項(xiàng)和支持項(xiàng)的獨(dú)立支持度。應(yīng)用公式計(jì)算杠桿率。3.2.2示例代碼使用上一節(jié)中的交易數(shù)據(jù)集,我們繼續(xù)評(píng)估規(guī)則A->B的杠桿率。#計(jì)算規(guī)則的支持度

support_rule=rules[(rules['antecedents']=={'A'})&(rules['consequents']=={'B'})]['support'].values[0]

#計(jì)算前提項(xiàng)和支持項(xiàng)的獨(dú)立支持度

support_antecedent=frequent_itemsets[frequent_itemsets['itemsets']=={'A'}]['support'].values[0]

support_consequent=frequent_itemsets[frequent_itemsets['itemsets']=={'B'}]['support'].values[0]

#計(jì)算杠桿率

leverage=support_rule-(support_antecedent*support_consequent)

leverage3.2.3解釋在計(jì)算杠桿率時(shí),我們首先從關(guān)聯(lián)規(guī)則中提取出規(guī)則A->B的支持度,然后分別計(jì)算A和B的獨(dú)立支持度。最后,我們應(yīng)用杠桿率的計(jì)算公式,得到規(guī)則A->B的杠桿率值。3.3相關(guān)性(Correlation)測(cè)量方法相關(guān)性(Correlation)是另一種評(píng)估關(guān)聯(lián)規(guī)則質(zhì)量的方法,它基于前提項(xiàng)和結(jié)果項(xiàng)之間的相關(guān)性強(qiáng)度。在二元關(guān)聯(lián)規(guī)則中,相關(guān)性可以使用皮爾遜相關(guān)系數(shù)(PearsonCorrelationCoefficient)來衡量。3.3.1計(jì)算相關(guān)性的步驟構(gòu)建二元變量矩陣:將交易數(shù)據(jù)轉(zhuǎn)換為二元變量矩陣,其中每一行代表一個(gè)交易,每一列代表一個(gè)商品,1表示商品在交易中出現(xiàn),0表示未出現(xiàn)。計(jì)算皮爾遜相關(guān)系數(shù)。3.3.2示例代碼使用相同的交易數(shù)據(jù)集,我們計(jì)算A和B之間的皮爾遜相關(guān)系數(shù)。#構(gòu)建二元變量矩陣

binary_matrix=df[['A','B']]

#計(jì)算皮爾遜相關(guān)系數(shù)

correlation=binary_matrix['A'].corr(binary_matrix['B'],method='pearson')

correlation3.3.3解釋在計(jì)算相關(guān)性時(shí),我們首先從交易數(shù)據(jù)集中提取出A和B的二元變量矩陣。然后,我們使用pandas庫中的corr函數(shù)計(jì)算這兩個(gè)變量之間的皮爾遜相關(guān)系數(shù),從而評(píng)估A和B之間的相關(guān)性強(qiáng)度。通過上述三種方法,我們可以全面評(píng)估關(guān)聯(lián)規(guī)則的質(zhì)量,選擇最具有實(shí)際意義的規(guī)則用于數(shù)據(jù)分析和決策支持。4數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:高級(jí)評(píng)估方法4.1Kulczynski系數(shù)的介紹Kulczynski系數(shù)是一種用于評(píng)估關(guān)聯(lián)規(guī)則質(zhì)量的統(tǒng)計(jì)量,尤其在二元分類問題中表現(xiàn)突出。它通過比較規(guī)則的正確預(yù)測(cè)與錯(cuò)誤預(yù)測(cè)來衡量規(guī)則的準(zhǔn)確性。Kulczynski系數(shù)的計(jì)算公式如下:K其中,TP(TruePositive)表示規(guī)則正確預(yù)測(cè)的正例數(shù),F(xiàn)N(FalseNegative)表示規(guī)則未能預(yù)測(cè)的正例數(shù),F(xiàn)P4.1.1示例代碼假設(shè)我們有一組交易數(shù)據(jù),其中包含商品A和商品B的購買情況,我們想要評(píng)估規(guī)則“A->B”的質(zhì)量。#導(dǎo)入必要的庫

frommlxtend.preprocessingimportTransactionEncoder

frommlxtend.frequent_patternsimportapriori,association_rules

importpandasaspd

#示例交易數(shù)據(jù)

dataset=[['A','B','C'],

['A','B'],

['A','C'],

['A','B','C'],

['B','C'],

['A','B'],

['A','C'],

['A','B','C'],

['B','C'],

['A','B']]

#使用TransactionEncoder編碼數(shù)據(jù)

te=TransactionEncoder()

te_ary=te.fit(dataset).transform(dataset)

df=pd.DataFrame(te_ary,columns=te.columns_)

#應(yīng)用Apriori算法找到頻繁項(xiàng)集

frequent_itemsets=apriori(df,min_support=0.3,use_colnames=True)

frequent_itemsets['length']=frequent_itemsets['itemsets'].apply(lambdax:len(x))

#生成關(guān)聯(lián)規(guī)則

rules=association_rules(frequent_itemsets,metric="confidence",min_threshold=0.7)

#計(jì)算Kulczynski系數(shù)

defkulczynski_coefficient(rule,df):

antecedents=rule['antecedents']

consequents=rule['consequents']

TP=df[(df[list(antecedents)]==True)&(df[list(consequents)]==True)].shape[0]

FN=df[(df[list(antecedents)]==True)&(df[list(consequents)]==False)].shape[0]

FP=df[(df[list(antecedents)]==True)&(~df[list(consequents)].any(axis=1))].shape[0]

return(TP/(TP+FN))+(TP/(TP+FP))

#應(yīng)用Kulczynski系數(shù)計(jì)算

rules['Kulczynski']=rules.apply(lambdax:kulczynski_coefficient(x,df),axis=1)

#顯示結(jié)果

print(rules)4.2Jaccard系數(shù)在關(guān)聯(lián)規(guī)則中的作用Jaccard系數(shù)用于衡量?jī)蓚€(gè)集合的相似度,計(jì)算公式為兩個(gè)集合交集的大小除以并集的大小。在關(guān)聯(lián)規(guī)則中,Jaccard系數(shù)可以用來評(píng)估規(guī)則的前件(antecedent)和后件(consequent)之間的相似度,從而判斷規(guī)則的強(qiáng)度。J其中,A和B分別代表規(guī)則的前件和后件集合。4.2.1示例代碼使用上述交易數(shù)據(jù),我們計(jì)算規(guī)則“A->B”的Jaccard系數(shù)。#計(jì)算Jaccard系數(shù)

defjaccard_coefficient(rule,df):

antecedents=rule['antecedents']

consequents=rule['consequents']

antecedents_set=set(antecedents)

consequents_set=set(consequents)

intersection=antecedents_ersection(consequents_set)

union=antecedents_set.union(consequents_set)

returnlen(intersection)/len(union)

#應(yīng)用Jaccard系數(shù)計(jì)算

rules['Jaccard']=rules.apply(lambdax:jaccard_coefficient(x,df),axis=1)

#顯示結(jié)果

print(rules)4.3Cosine相似度的計(jì)算與意義Cosine相似度是另一種衡量?jī)蓚€(gè)非零向量之間角度的余弦值,用于評(píng)估它們之間的相似性。在關(guān)聯(lián)規(guī)則分析中,可以將規(guī)則的前件和后件視為向量,然后計(jì)算它們之間的Cosine相似度。C其中,A?B表示向量A和B的點(diǎn)積,A和B分別表示向量A和4.3.1示例代碼繼續(xù)使用上述交易數(shù)據(jù),我們計(jì)算規(guī)則“A->B”的Cosine相似度。#計(jì)算Cosine相似度

defcosine_similarity(rule,df):

antecedents=rule['antecedents']

consequents=rule['consequents']

antecedents_vec=df[list(antecedents)].sum()

consequents_vec=df[list(consequents)].sum()

dot_product=antecedents_vec.dot(consequents_vec)

antecedents_norm=antecedents_vec.norm()

consequents_norm=consequents_vec.norm()

returndot_product/(antecedents_norm*consequents_norm)

#應(yīng)用Cosine相似度計(jì)算

rules['Cosine']=rules.apply(lambdax:cosine_similarity(x,df),axis=1)

#顯示結(jié)果

print(rules)請(qǐng)注意,上述代碼中的cosine_similarity函數(shù)使用了向量的點(diǎn)積和模,但在Pandas中,Series對(duì)象沒有直接的norm方法。因此,實(shí)際計(jì)算中,我們可能需要使用NumPy的linalg.norm函數(shù)來計(jì)算向量的模。4.4結(jié)論通過Kulczynski系數(shù)、Jaccard系數(shù)和Cosine相似度,我們可以從不同的角度評(píng)估關(guān)聯(lián)規(guī)則的質(zhì)量。Kulczynski系數(shù)關(guān)注規(guī)則的準(zhǔn)確性和召回率,Jaccard系數(shù)衡量規(guī)則前件和后件的相似度,而Cosine相似度則提供了一種基于向量空間模型的相似性度量。這些方法的結(jié)合使用,可以為數(shù)據(jù)分析中的關(guān)聯(lián)規(guī)則提供更全面的評(píng)估視角。由于在實(shí)際代碼中,cosine_similarity函數(shù)的norm方法需要使用NumPy庫,以下是修正后的Cosine相似度計(jì)算代碼:importnumpyasnp

#計(jì)算Cosine相似度

defcosine_similarity(rule,df):

antecedents=rule['antecedents']

consequents=rule['consequents']

antecedents_vec=df[list(antecedents)].sum()

consequents_vec=df[list(consequents)].sum()

dot_product=antecedents_vec.dot(consequents_vec)

antecedents_norm=np.linalg.norm(antecedents_vec)

consequents_norm=np.linalg.norm(consequents_vec)

returndot_product/(antecedents_norm*consequents_norm)

#應(yīng)用修正后的Cosine相似度計(jì)算

rules['Cosine']=rules.apply(lambdax:cosine_similarity(x,df),axis=1)

#顯示結(jié)果

print(rules)這樣,我們就可以正確地計(jì)算出Cosine相似度,進(jìn)一步完善關(guān)聯(lián)規(guī)則的評(píng)估。5數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法5.1案例分析5.1.1零售業(yè)中的關(guān)聯(lián)規(guī)則分析在零售業(yè)中,關(guān)聯(lián)規(guī)則分析是一種常用的數(shù)據(jù)挖掘技術(shù),用于發(fā)現(xiàn)商品之間的購買模式。例如,通過分析超市的銷售數(shù)據(jù),可以找出哪些商品經(jīng)常一起被購買,從而制定更有效的營(yíng)銷策略,如商品擺放、促銷活動(dòng)等。原理關(guān)聯(lián)規(guī)則的質(zhì)量評(píng)估主要依賴于三個(gè)指標(biāo):支持度(Support)、置信度(Confidence)和提升度(Lift)。支持度(Support):表示一個(gè)項(xiàng)集在所有交易中出現(xiàn)的頻率。例如,商品A和B一起被購買的交易占所有交易的比例。置信度(Confidence):表示在包含A的交易中,同時(shí)包含B的概率。它衡量了規(guī)則A->B的可靠性。提升度(Lift):用于評(píng)估規(guī)則A->B是否真正有意義。提升度計(jì)算為規(guī)則的置信度除以B在所有交易中的支持度。如果提升度大于1,說明A和B的關(guān)聯(lián)比隨機(jī)出現(xiàn)的可能性要大。數(shù)據(jù)樣例與代碼示例假設(shè)我們有以下的交易數(shù)據(jù):交易ID商品1A,B2A,C3A,B4B,C5A,B#Python代碼示例

importpandasaspd

frommlxtend.preprocessingimportTransactionEncoder

frommlxtend.frequent_patternsimportapriori,association_rules

#交易數(shù)據(jù)

transactions=[

['A','B'],

['A','C'],

['A','B'],

['B','C'],

['A','B']

]

#數(shù)據(jù)預(yù)處理

te=TransactionEncoder()

te_ary=te.fit(transactions).transform(transactions)

df=pd.DataFrame(te_ary,columns=te.columns_)

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

frequent_itemsets=apriori(df,min_support=0.4,use_colnames=True)

print(frequent_itemsets)

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

rules=association_rules(frequent_itemsets,metric="lift",min_threshold=1)

print(rules)這段代碼使用了mlxtend庫來計(jì)算頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則。首先,我們定義了交易數(shù)據(jù),然后使用TransactionEncoder進(jìn)行預(yù)處理,將商品列表轉(zhuǎn)換為二進(jìn)制矩陣。接著,通過apriori函數(shù)計(jì)算支持度大于0.4的頻繁項(xiàng)集,最后使用association_rules函數(shù)計(jì)算提升度大于1的關(guān)聯(lián)規(guī)則。5.1.2電信行業(yè)關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估實(shí)例電信行業(yè)通過分析用戶行為數(shù)據(jù),可以發(fā)現(xiàn)用戶使用服務(wù)的模式,從而優(yōu)化服務(wù)套餐,提高用戶滿意度和忠誠(chéng)度。原理在電信行業(yè),關(guān)聯(lián)規(guī)則分析可以應(yīng)用于用戶套餐選擇、服務(wù)使用頻率、故障預(yù)測(cè)等多個(gè)方面。例如,分析用戶同時(shí)訂購哪些服務(wù),可以為新用戶提供套餐推薦。數(shù)據(jù)樣例與代碼示例假設(shè)我們有以下的電信用戶服務(wù)訂購數(shù)據(jù):用戶ID訂購服務(wù)1語音,短信2語音,流量3語音,短信4流量,短信5語音,流量#Python代碼示例

importpandasaspd

frommlxtend.preprocessingimportTransactionEncoder

frommlxtend.frequent_patternsimportapriori,association_rules

#用戶服務(wù)訂購數(shù)據(jù)

services=[

['語音','短信'],

['語音','流量'],

['語音','短信'],

['流量','短信'],

['語音','流量']

]

#數(shù)據(jù)預(yù)處理

te=TransactionEncoder()

te_ary=te.fit(services).transform(services)

df_services=pd.DataFrame(te_ary,columns=te.columns_)

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

frequent_services=apriori(df_services,min_support=0.4,use_colnames=True)

print(frequent_services)

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

rules_services=association_rules(frequent_services,metric="lift",min_threshold=1)

print(rules_services)這段代碼與零售業(yè)的示例類似,但數(shù)據(jù)內(nèi)容換成了電信服務(wù)。通過計(jì)算頻繁服務(wù)組合和關(guān)聯(lián)規(guī)則,電信公司可以了解哪些服務(wù)經(jīng)常被一起訂購,從而優(yōu)化服務(wù)套餐,提供更符合用戶需求的組合。以上兩個(gè)案例展示了關(guān)聯(lián)規(guī)則分析在不同行業(yè)中的應(yīng)用,以及如何使用Python進(jìn)行數(shù)據(jù)處理和規(guī)則計(jì)算。通過支持度、置信度和提升度的評(píng)估,可以有效地發(fā)現(xiàn)數(shù)據(jù)中的潛在關(guān)聯(lián),為業(yè)務(wù)決策提供支持。6數(shù)據(jù)分析:關(guān)聯(lián)規(guī)則:關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估方法6.1關(guān)聯(lián)規(guī)則質(zhì)量評(píng)估的選擇策略在數(shù)據(jù)分析領(lǐng)域,關(guān)聯(lián)規(guī)則挖掘是一種常用的技術(shù),用于發(fā)現(xiàn)數(shù)據(jù)集中項(xiàng)之間的有趣關(guān)聯(lián)或相關(guān)性。然而,并非所有挖掘出的規(guī)則都具有實(shí)際價(jià)值,因此,評(píng)估關(guān)聯(lián)規(guī)則的質(zhì)量至關(guān)重要。選擇策略主要基于三個(gè)關(guān)鍵指標(biāo):支持度(Support)、置信度(Confidence)和提升度(Lift)。6.1.1支持度(Support)支持度衡量一個(gè)項(xiàng)集在數(shù)據(jù)集中出現(xiàn)的頻率。一個(gè)高支持度的規(guī)則意味著它在數(shù)據(jù)集中出現(xiàn)的次數(shù)較多,具有一定的普遍性。公式為:Support6.1.2置信度(Confidence)置信度表示在包含X的交易中,同時(shí)包含Y的概率。它反映了規(guī)則的可靠性。公式為:Confidence6.1.3提升度(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論