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