劉靜頤,朱桂玲云南大學(xué)
R語(yǔ)言在關(guān)聯(lián)規(guī)則算法(Apriori)中的實(shí)現(xiàn)
劉靜頤,朱桂玲
云南大學(xué)
關(guān)聯(lián)規(guī)則(Association):揭示數(shù)據(jù)之間的相互關(guān)系,而這種關(guān)系沒(méi)有在數(shù)據(jù)中直接表示出來(lái)。
關(guān)聯(lián)關(guān)系的任務(wù)就是發(fā)現(xiàn)事物之間的關(guān)聯(lián)規(guī)則或稱相關(guān)程度。關(guān)聯(lián)規(guī)則的一般形式是:如果A發(fā)生,則B有百分之C的可能發(fā)生。C稱關(guān)聯(lián)規(guī)則的置信度(Confidence)
利用關(guān)聯(lián)分析能尋找數(shù)據(jù)庫(kù)中大量數(shù)據(jù)的相關(guān)聯(lián)系或相互依賴性,如分析客戶在超市買牙刷的同時(shí)又買牙膏的可能性。
常用關(guān)聯(lián)規(guī)則算法見(jiàn)下表:
算法名稱Apriori FP-Tree灰色關(guān)聯(lián)度HotSpot算法描述一種最有影響的挖掘布爾關(guān)聯(lián)規(guī)則頻繁項(xiàng)集的算法,其核心是基于兩階段頻集思想的遞推算法針對(duì)Apriori算法的固有缺陷,J.Han等提出了不產(chǎn)生碗蕨頻繁項(xiàng)集的方法,F(xiàn)P-樹(shù)頻集算法以分析和確定各因素之間的影響程度或若干子因素(子序列)對(duì)主因素(母序列)的貢獻(xiàn)程度二進(jìn)行的一種分析方法挖掘得到樹(shù)形結(jié)構(gòu)顯示的感興趣的目標(biāo)最大化/最小化的一套規(guī)則,最大化/最小化的利益目標(biāo)變量/值。
在此我們只介紹Apriori?;镜乃惴ú襟E如下:(1)選出滿足支持度最小閾值的所有項(xiàng)集,即頻繁項(xiàng)集;(2)從頻繁項(xiàng)集中找出滿足最小置信度的所有規(guī)則。
在此數(shù)據(jù)分析中我們用兩個(gè)專用于關(guān)聯(lián)分析的軟件包——arules和arulesViz.
前一個(gè)用于關(guān)聯(lián)規(guī)則的數(shù)字化生成,而另一個(gè)arulesViz軟件包作為arules的擴(kuò)展包,提供了關(guān)聯(lián)規(guī)則的可視化技術(shù),使得關(guān)聯(lián)分析從算法運(yùn)行到結(jié)果呈現(xiàn)一體化。
(一)相關(guān)函數(shù)
在R中實(shí)現(xiàn)Apriori算法,其核心函數(shù)為apriori(),來(lái)源于arules軟件包,函數(shù)基本格式為:
apriori(data,parameter=NULL,apprearance=NULL,control= NULL)
其中parameter參數(shù)可以對(duì)支持度(support)、置信度(Confi?dence0、沒(méi)個(gè)項(xiàng)集所含項(xiàng)數(shù)的最大最小值(maxlen/minlen),以及輸出結(jié)果(target)等重要參數(shù)進(jìn)行設(shè)置。
參數(shù)appearance可以對(duì)先決條件X和關(guān)聯(lián)結(jié)果Y中具體包含哪些項(xiàng)進(jìn)行限制。
Control參數(shù)則用來(lái)控制函數(shù)性能,如可以設(shè)定對(duì)項(xiàng)集進(jìn)行升序(sort=1)還是降序(sort=-1)排序,是否向使用者報(bào)告進(jìn)程(ver?bose=FALSE/TRUE)等
(二)數(shù)據(jù)提取和處理
R中提取數(shù)據(jù)如下:
1.數(shù)據(jù)整合
將數(shù)據(jù)轉(zhuǎn)化為疏散矩陣形式,有取1,無(wú)取0(疏散矩陣),之后將疏散矩陣轉(zhuǎn)化為apriori函數(shù)可用的數(shù)據(jù)結(jié)構(gòu)。如下所示:
癥狀與中藥的關(guān)聯(lián)關(guān)系。
運(yùn)用關(guān)聯(lián)算法時(shí),我們先嘗試對(duì)apriori函數(shù)以最少的限制,來(lái)觀察它的輸出,再以此決定下一步操作。這里將支持度的最小閾值(minsup)設(shè)置為0.5,,置信度最小閾值(mincon)設(shè)為0.6,其他參數(shù)不進(jìn)行設(shè)定取默認(rèn)值,并將所得關(guān)聯(lián)規(guī)則名記為rules0,并使用inspect函數(shù)展示詳細(xì)的關(guān)聯(lián)規(guī)則,代碼如下所示:
在上述結(jié)果中,lhs列是關(guān)聯(lián)規(guī)則的左側(cè),rhs列是關(guān)聯(lián)規(guī)則的右側(cè),support、confidence、lift分別是支持度、信任度和提升度。
在兩參數(shù)共同調(diào)整過(guò)程中,如果更注重關(guān)聯(lián)項(xiàng)集在總體中所占的比例,則可以適當(dāng)?shù)亩嗵岣咧С侄龋羰歉⒅匾?guī)則本身的可靠性,則可多提高一些置信度值。
提升度表示在含有X的條件下同時(shí)含有Y的可能性與沒(méi)有這個(gè)條件下項(xiàng)集中含有Y的可能性之比,即在Y自身出現(xiàn)可能性P (Y)的基礎(chǔ)上,X的出現(xiàn)對(duì)于Y的“出鏡率”P(Y|X)的提升程度:
該指標(biāo)與置信度同樣用于衡量規(guī)則的可靠性,可以看做置信度的一種互補(bǔ)指標(biāo)。
當(dāng)lift值為1時(shí)表示X與Y相互獨(dú)立,X對(duì)Y出現(xiàn)的可能性沒(méi)有提升作用,而其值越大(>1)則表明X對(duì)Y的提升程度越大,即表明關(guān)聯(lián)性越強(qiáng)。
由于上述理論知識(shí),我們知道提升度可以說(shuō)是關(guān)聯(lián)規(guī)則最可靠的指標(biāo),且得到的結(jié)論也是有用的,所以在設(shè)置參數(shù)時(shí),我們依據(jù)lift只進(jìn)行升序排序來(lái)選出最有用的幾條關(guān)聯(lián)規(guī)則。
規(guī)則一:{舌紅、生石膏、杏仁、甘草}=>{魚腥草}
規(guī)則二:{胸痛、舌紅、杏仁、甘草}=>{魚腥草}
規(guī)則三:{發(fā)熱、舌紅、杏仁、甘草}=>{魚腥草}
說(shuō)明癥狀有舌紅和胸痛或發(fā)熱,服用過(guò)生石膏、杏仁、甘草的患者,之后會(huì)服用魚腥草。
癥狀與癥狀之間的關(guān)聯(lián)關(guān)系。
規(guī)則一:{胸痛、口渴、脈滑數(shù)}=>{苔黃}
規(guī)則二:{胸痛、口渴、咳黃(稠)粘痰}=>{苔黃}
規(guī)則三:{胸痛、口渴、咳黃(稠)粘痰、脈滑數(shù)}=>{苔黃}
說(shuō)明有胸痛、口渴、咳黃(稠)粘痰、脈滑數(shù)的癥狀的,絕大可能性會(huì)出現(xiàn)苔黃的癥狀。
關(guān)聯(lián)規(guī)則的可視化。
1、癥狀與癥狀之間的關(guān)聯(lián)關(guān)系
按lift參數(shù)為a52和a47關(guān)聯(lián)強(qiáng)度最強(qiáng),即苔黃和脈滑數(shù)的關(guān)聯(lián)強(qiáng)度最大,而從support參數(shù)(即按size大小來(lái)看)a4和a4關(guān)聯(lián)強(qiáng)度最大,這沒(méi)什么意思,a52和a4次之,即胸痛和脈滑數(shù)關(guān)聯(lián)強(qiáng)度最強(qiáng)。
2、癥狀與中藥之間的關(guān)聯(lián)關(guān)系
按lift參數(shù)(即按color顏色深度來(lái)看)為a52和c39關(guān)聯(lián)強(qiáng)度較強(qiáng),即蘆根和脈滑數(shù)的關(guān)聯(lián)強(qiáng)度較大,而從support參數(shù)(即按size大小來(lái)看)a4和a11關(guān)聯(lián)強(qiáng)度最大,即胸痛和咳黃(稠)粘痰關(guān)聯(lián)強(qiáng)度最大。
劉靜頤,女,單位:云南大學(xué)(數(shù)學(xué)與統(tǒng)計(jì)學(xué)院),研究生,研究方向:科技統(tǒng)計(jì)。