劉靜頤,朱桂玲云南大學
R語言在關聯(lián)規(guī)則算法(Apriori)中的實現(xiàn)
劉靜頤,朱桂玲
云南大學
關聯(lián)規(guī)則(Association):揭示數(shù)據(jù)之間的相互關系,而這種關系沒有在數(shù)據(jù)中直接表示出來。
關聯(lián)關系的任務就是發(fā)現(xiàn)事物之間的關聯(lián)規(guī)則或稱相關程度。關聯(lián)規(guī)則的一般形式是:如果A發(fā)生,則B有百分之C的可能發(fā)生。C稱關聯(lián)規(guī)則的置信度(Confidence)
利用關聯(lián)分析能尋找數(shù)據(jù)庫中大量數(shù)據(jù)的相關聯(lián)系或相互依賴性,如分析客戶在超市買牙刷的同時又買牙膏的可能性。
常用關聯(lián)規(guī)則算法見下表:

算法名稱Apriori FP-Tree灰色關聯(lián)度HotSpot算法描述一種最有影響的挖掘布爾關聯(lián)規(guī)則頻繁項集的算法,其核心是基于兩階段頻集思想的遞推算法針對Apriori算法的固有缺陷,J.Han等提出了不產(chǎn)生碗蕨頻繁項集的方法,F(xiàn)P-樹頻集算法以分析和確定各因素之間的影響程度或若干子因素(子序列)對主因素(母序列)的貢獻程度二進行的一種分析方法挖掘得到樹形結構顯示的感興趣的目標最大化/最小化的一套規(guī)則,最大化/最小化的利益目標變量/值。
在此我們只介紹Apriori。基本的算法步驟如下:(1)選出滿足支持度最小閾值的所有項集,即頻繁項集;(2)從頻繁項集中找出滿足最小置信度的所有規(guī)則。
在此數(shù)據(jù)分析中我們用兩個專用于關聯(lián)分析的軟件包——arules和arulesViz.
前一個用于關聯(lián)規(guī)則的數(shù)字化生成,而另一個arulesViz軟件包作為arules的擴展包,提供了關聯(lián)規(guī)則的可視化技術,使得關聯(lián)分析從算法運行到結果呈現(xiàn)一體化。
(一)相關函數(shù)
在R中實現(xiàn)Apriori算法,其核心函數(shù)為apriori(),來源于arules軟件包,函數(shù)基本格式為:
apriori(data,parameter=NULL,apprearance=NULL,control= NULL)
其中parameter參數(shù)可以對支持度(support)、置信度(Confi?dence0、沒個項集所含項數(shù)的最大最小值(maxlen/minlen),以及輸出結果(target)等重要參數(shù)進行設置。
參數(shù)appearance可以對先決條件X和關聯(lián)結果Y中具體包含哪些項進行限制。
Control參數(shù)則用來控制函數(shù)性能,如可以設定對項集進行升序(sort=1)還是降序(sort=-1)排序,是否向使用者報告進程(ver?bose=FALSE/TRUE)等
(二)數(shù)據(jù)提取和處理
R中提取數(shù)據(jù)如下:
1.數(shù)據(jù)整合
將數(shù)據(jù)轉化為疏散矩陣形式,有取1,無取0(疏散矩陣),之后將疏散矩陣轉化為apriori函數(shù)可用的數(shù)據(jù)結構。如下所示:
癥狀與中藥的關聯(lián)關系。
運用關聯(lián)算法時,我們先嘗試對apriori函數(shù)以最少的限制,來觀察它的輸出,再以此決定下一步操作。這里將支持度的最小閾值(minsup)設置為0.5,,置信度最小閾值(mincon)設為0.6,其他參數(shù)不進行設定取默認值,并將所得關聯(lián)規(guī)則名記為rules0,并使用inspect函數(shù)展示詳細的關聯(lián)規(guī)則,代碼如下所示:
在上述結果中,lhs列是關聯(lián)規(guī)則的左側,rhs列是關聯(lián)規(guī)則的右側,support、confidence、lift分別是支持度、信任度和提升度。
在兩參數(shù)共同調(diào)整過程中,如果更注重關聯(lián)項集在總體中所占的比例,則可以適當?shù)亩嗵岣咧С侄龋羰歉⒅匾?guī)則本身的可靠性,則可多提高一些置信度值。
提升度表示在含有X的條件下同時含有Y的可能性與沒有這個條件下項集中含有Y的可能性之比,即在Y自身出現(xiàn)可能性P (Y)的基礎上,X的出現(xiàn)對于Y的“出鏡率”P(Y|X)的提升程度:

該指標與置信度同樣用于衡量規(guī)則的可靠性,可以看做置信度的一種互補指標。
當lift值為1時表示X與Y相互獨立,X對Y出現(xiàn)的可能性沒有提升作用,而其值越大(>1)則表明X對Y的提升程度越大,即表明關聯(lián)性越強。
由于上述理論知識,我們知道提升度可以說是關聯(lián)規(guī)則最可靠的指標,且得到的結論也是有用的,所以在設置參數(shù)時,我們依據(jù)lift只進行升序排序來選出最有用的幾條關聯(lián)規(guī)則。
規(guī)則一:{舌紅、生石膏、杏仁、甘草}=>{魚腥草}
規(guī)則二:{胸痛、舌紅、杏仁、甘草}=>{魚腥草}
規(guī)則三:{發(fā)熱、舌紅、杏仁、甘草}=>{魚腥草}
說明癥狀有舌紅和胸痛或發(fā)熱,服用過生石膏、杏仁、甘草的患者,之后會服用魚腥草。
癥狀與癥狀之間的關聯(lián)關系。
規(guī)則一:{胸痛、口渴、脈滑數(shù)}=>{苔黃}
規(guī)則二:{胸痛、口渴、咳黃(稠)粘痰}=>{苔黃}
規(guī)則三:{胸痛、口渴、咳黃(稠)粘痰、脈滑數(shù)}=>{苔黃}
說明有胸痛、口渴、咳黃(稠)粘痰、脈滑數(shù)的癥狀的,絕大可能性會出現(xiàn)苔黃的癥狀。
關聯(lián)規(guī)則的可視化。

1、癥狀與癥狀之間的關聯(lián)關系
按lift參數(shù)為a52和a47關聯(lián)強度最強,即苔黃和脈滑數(shù)的關聯(lián)強度最大,而從support參數(shù)(即按size大小來看)a4和a4關聯(lián)強度最大,這沒什么意思,a52和a4次之,即胸痛和脈滑數(shù)關聯(lián)強度最強。
2、癥狀與中藥之間的關聯(lián)關系
按lift參數(shù)(即按color顏色深度來看)為a52和c39關聯(lián)強度較強,即蘆根和脈滑數(shù)的關聯(lián)強度較大,而從support參數(shù)(即按size大小來看)a4和a11關聯(lián)強度最大,即胸痛和咳黃(稠)粘痰關聯(lián)強度最大。
劉靜頤,女,單位:云南大學(數(shù)學與統(tǒng)計學院),研究生,研究方向:科技統(tǒng)計。