張峰 吳辰曦
摘 要:本文通過對關(guān)聯(lián)規(guī)則挖掘的研究,探討了關(guān)聯(lián)規(guī)則在醫(yī)藥零售業(yè)中應用,以期找出不同藥品間的銷售相關(guān)程度,提高藥品的營銷力度,挖掘頻繁項目集是關(guān)聯(lián)規(guī)則挖掘應用中的核心技術(shù)。
關(guān)鍵詞:數(shù)據(jù)挖掘;關(guān)聯(lián)規(guī)則;頻繁項集;醫(yī)藥營銷
1 引言
如今,數(shù)據(jù)挖掘已被各行各業(yè)所廣泛關(guān)注,關(guān)聯(lián)規(guī)則(Association Rules)挖掘是數(shù)據(jù)挖掘的一個重要分支,自從Agrawal于1993年提出了關(guān)聯(lián)規(guī)則挖掘的概念,吸引了越來越多的學者對其進行研究。關(guān)聯(lián)規(guī)則是如下形式的邏輯蘊涵:A→B,其中A,B是項集,A∈I,B∈I,A∩B=Ф,一般用來分析和發(fā)現(xiàn)數(shù)據(jù)事務(wù)集中不同變量或個體之間是否存在著某種關(guān)系,例如利用這些關(guān)系找出顧客購買行為模式。關(guān)聯(lián)規(guī)則源于購物籃分析,即購買A產(chǎn)品會不會刺激購買B產(chǎn)品,例如購買藥品A對購買其它藥品的相關(guān)影響,這時我們可以表示為“在購買了藥品A的顧客中,有K%的顧客又購買了B藥品”。發(fā)現(xiàn)這樣的規(guī)則可以應用于藥品的貨架分類、庫存安排及根據(jù)購買行為模式對患者進行分類??傊?,關(guān)聯(lián)規(guī)則通過對歷史數(shù)據(jù)進行分析找出“哪些藥品會被顧客同時購買”。挖掘頻繁項目集是關(guān)聯(lián)規(guī)則挖掘應用中的核心技術(shù),主要研究的關(guān)聯(lián)規(guī)則算法有搜索算法、深度優(yōu)先算法等,其中最為經(jīng)典的是Apriori算法[1]。
2 關(guān)聯(lián)規(guī)則的基本概念
關(guān)聯(lián)規(guī)則挖掘的主要任務(wù)是在歷史數(shù)據(jù)中發(fā)現(xiàn)所有強關(guān)聯(lián)規(guī)則,即在歷史數(shù)據(jù)中挖掘出所有滿足最小支持度min_support和最小置信度min_confidence的關(guān)聯(lián)規(guī)則。每一條被挖掘出來的關(guān)聯(lián)規(guī)則可以用一個蘊含式,兩個閥值來進行標識。
定義1:I={I1,I2…,Im},由m個項目組成的集合。其中I為有m個項目的集合(itemset),即項目集,Im為購買的第m件藥品。
定義2:D={t1,t2,…,tn},由n項組成的集合,代表n位顧客的交易集合,其中tj={ ij1,ij2…,ijk},其中tj代表第j位顧客的交易清單,共購買了k項物品,ijk表示第j位顧客購買的第k件商品。
定義3:關(guān)聯(lián)規(guī)則一般是形如A->B的蘊涵式,它有兩個重要參數(shù),支持度sup和可信度conf。其中,sup(I1->I2)=P(I1∩I2),表示I1和I2同時購買的概率;conf(I1->I2)=P(I1|I2),表示在購買了I2的情況下購買I1的概率。
定義4:若sup(I1->I2)>=min_support,conf(I1->I2)>= min_confidence,則(I1->I2)稱為強關(guān)聯(lián)規(guī)則,其中min_support稱為最小可信閾值,min_confidence稱為最小支持閾值,一般可以根據(jù)應用經(jīng)驗設(shè)定。
定義5:若有項目集S,sup(S)>=min_support,則S就是一個頻繁項集,頻繁K-項集,通常記為LK。如果一個項目集S不滿足最小支持度,則稱為非頻繁項集。
定義6:作用度(lift)是可信度與期望可信度的比值。作用度描述項目集X的出現(xiàn)對項目集Y的出現(xiàn)有多大影響。
在藥品銷售中,“購買藥品A的同時也會購買藥品B”,類似的自然語言可以用如下規(guī)則表示:藥品A-->藥品B[sup=7%, conf=89%]。這個規(guī)則的含義是:在所有交易中,藥品A和藥品B有7%的概率會同時購買,并且在購買藥品B時會有89%的概率購買藥品A。
3 關(guān)聯(lián)規(guī)則算法研究
Apriori[2]算法是關(guān)聯(lián)規(guī)則挖掘中比較有影響力的算法,該算法利用了一個層次順序搜索的循環(huán)方法來完成頻繁項集的挖掘工作。這一循環(huán)方法就是利用k-項集來產(chǎn)生(k+1)-項集。具體做法就是[3]:首先找出頻繁1-項集,記為L1;然后利用L1來挖掘L2,即頻繁2-項集;不斷如此循環(huán)下去直到無法發(fā)現(xiàn)更多的頻繁k-項集為止。每挖掘一層Lk就需要掃描整個數(shù)據(jù)庫一遍[4]。
(1)頻繁項集的所有非空子集也必須是頻繁的。
(2)非頻繁項集的所有超集一定是非頻繁的。
下面通過一個例子來研究Apriori算法是如何對一個事務(wù)數(shù)據(jù)庫進行頻繁項集挖掘的。數(shù)據(jù)庫中有4個事務(wù),交易數(shù)據(jù)庫D中共有4條記錄,如表1所示,假設(shè)支持度閾值50%(即最小支持度計數(shù)為2)。
掃描數(shù)據(jù)庫,得到候選1-項集C1 ,如表2所示。
比較C1中各項的支持度計數(shù)與最小支持度計數(shù),得到頻繁1-項集L1,如表3所示。
使用L1⊕L1生成候選2-項集C2,掃描數(shù)據(jù)庫,得到C2各項的支持度計數(shù),如表4所示。
比較C2中各項的支持度計數(shù)與最小支持度計數(shù),得到頻繁2-項集L2,如表5所示。
使用L2⊕L2生成候選3-項集C3,同時根據(jù)Apriori性質(zhì)剪枝,并掃描數(shù)據(jù)庫,得到C3各項的支持度,如表6所示。
比較C3中各項的支持度計數(shù)與最小支持度計數(shù),得到頻繁3-項集L3,如表7所示。
因為在例子中無法產(chǎn)生候選4-項集,即C4= ,所以Apriori算法停止連接,得出頻繁項集BCE。
4 結(jié)論
通過利用Apriori算法對事物數(shù)據(jù)庫挖掘,最終得出了頻繁項集,根據(jù)該結(jié)論便可對藥品貨架分類、庫存安排及根據(jù)購買行為模式對患者進行分類。Apriori過程需要完成兩種操作,一是連接操作,二是消減操作,可能產(chǎn)生大量的候選集和重復掃描數(shù)據(jù)庫。
[參考文獻]
[1]J.HanandM.Kamber著,范明,孟小峰,等,譯.數(shù)據(jù)挖掘概念技術(shù).北京:機械工業(yè)出版社,2001:149-178.
[2]楊君銳.關(guān)于最大頻繁項集的增量式挖掘方法研究.計算機研究與發(fā)展,2004,41:270-275.
[3]歐陽為民,蔡慶生.數(shù)據(jù)庫中的時態(tài)數(shù)據(jù)發(fā)掘研究[J].計算機科學,1998,25(4):60-63.
[4]楊炳儒.多最小支持度規(guī)則的挖掘算法[J].計算機工程.2003.Vol.29 No.6.40-41.151.