馮永祥 楊寒
摘要:針對(duì)各藥店激烈的競(jìng)爭(zhēng)以及如何實(shí)現(xiàn)盈利最大化的問題,將數(shù)據(jù)挖掘技術(shù)有效地運(yùn)用到藥品零售管理系統(tǒng)中去。通過MATLAB建模,利用關(guān)聯(lián)規(guī)則對(duì)某藥店部分零售數(shù)據(jù)進(jìn)行挖掘以及利用聚類算法對(duì)客戶價(jià)值進(jìn)行聚類的研究與分析,發(fā)現(xiàn)顧客購買趨勢(shì)、挖掘潛在的客戶、提高藥店的競(jìng)爭(zhēng)力,為企業(yè)經(jīng)營者提供決策性支持。
關(guān)鍵詞:數(shù)據(jù)挖掘;關(guān)聯(lián)規(guī)則;聚類算法;藥品零售;客戶價(jià)值
1引言
隨著我國國民經(jīng)濟(jì)的不斷發(fā)展、人民生活水平不斷提高、人口老齡化的持續(xù)加劇,城鄉(xiāng)居民對(duì)藥品的需求量也在逐漸增大,因此,近幾年來我國各零售藥店之間的競(jìng)爭(zhēng)也越來越激烈,經(jīng)營者更加關(guān)注藥店銷售業(yè)績(jī)等有價(jià)值的信息。目前,各藥店都用計(jì)算機(jī)來管理自己的內(nèi)部事務(wù),但現(xiàn)在大多數(shù)藥品零售管理系統(tǒng)中只能提供較為簡(jiǎn)單的記錄查詢,沒有從藥店日積月累的銷售數(shù)據(jù)中獲得隱藏的知識(shí),而數(shù)據(jù)挖掘技術(shù)能為企業(yè)帶來更多潛在的商業(yè)機(jī)會(huì)。
2相關(guān)理論及技術(shù)
2.1數(shù)據(jù)挖掘
數(shù)據(jù)挖掘(Data mining)是指數(shù)據(jù)庫知識(shí)發(fā)現(xiàn),一般是從大量的數(shù)據(jù)中通過算法搜索隱藏于其中信息的過程。目前,數(shù)據(jù)挖掘在各領(lǐng)域的應(yīng)用非常廣泛,尤其是零售業(yè)、金融行業(yè)、通訊以及醫(yī)療服務(wù)業(yè)等。只要該企業(yè)具有分析價(jià)值和需求的數(shù)據(jù)庫,就可以利用數(shù)據(jù)挖掘技術(shù)進(jìn)行有目的的挖掘分析。常用的數(shù)據(jù)挖掘模型包括關(guān)聯(lián)分析、分類和預(yù)測(cè)、聚類分析和異常點(diǎn)分析等,本文采用了關(guān)聯(lián)規(guī)則的Apriori算法和聚類分析的K-means算法,挖掘過程如圖1所示。
1)在藥品零售管理系統(tǒng)中根據(jù)挖掘需求對(duì)數(shù)據(jù)進(jìn)行收集,并整理成原始數(shù)據(jù);
2)對(duì)原始數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,其中包括數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換;
3)運(yùn)用具體的數(shù)據(jù)挖掘算法進(jìn)行建模;
4)結(jié)合日常業(yè)務(wù),對(duì)模型結(jié)果進(jìn)行分析,且將模型結(jié)果應(yīng)用于實(shí)際業(yè)務(wù)中,最后輸出應(yīng)用結(jié)果。
2.2MATLAB簡(jiǎn)介
MATLAB是一款商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,還可以用來創(chuàng)建用戶界面及調(diào)用其它語言編寫的程序。本文用MAT-LAB語言編寫,由若干MATLAB命令組合在一起,實(shí)現(xiàn)Apriori算法和K-means算法,完成關(guān)聯(lián)規(guī)則和聚類分析的操作。
3 Apriori算法在藥品零售管理系統(tǒng)中的應(yīng)用
基于關(guān)聯(lián)規(guī)則的數(shù)據(jù)挖掘可以看作是一種顧客購買行為的分析,購物籃中對(duì)應(yīng)的項(xiàng)目表示顧客一次性購買的商品。通過關(guān)聯(lián)規(guī)則發(fā)現(xiàn)顧客購買的不同商品之間的聯(lián)系,發(fā)現(xiàn)顧客購買的行為,用來指導(dǎo)經(jīng)營者科學(xué)地安排進(jìn)貨、庫存以及貨架設(shè)計(jì)等,幫助零售店制定營銷策略
3.1數(shù)據(jù)獲取
藥品零售的關(guān)聯(lián)分析數(shù)據(jù)來自于日常業(yè)務(wù)管理中,以某藥店某時(shí)間段2375條零售數(shù)據(jù)為例進(jìn)行關(guān)聯(lián)規(guī)則挖掘。數(shù)據(jù)包括涉藥單位、銷售單號(hào)、藥品代碼、藥品名稱、銷售時(shí)間、銷售數(shù)量等字段,如圖2所示。
3.2數(shù)據(jù)預(yù)處理
1)數(shù)據(jù)清洗
在日常銷售中,存在退貨的情況,為了便于模型分析,需要對(duì)其處理,將無效的數(shù)據(jù)去掉。
2)數(shù)據(jù)集成
關(guān)聯(lián)規(guī)則需要以顧客已買到的藥品來預(yù)測(cè)顧客可能感興趣的其他項(xiàng),因此需要對(duì)藥品進(jìn)行分類,在藥品零售數(shù)據(jù)中沒有藥品類型的屬性,本課題根據(jù)藥品的種類將藥品分為心腦血管用藥,腸胃道用藥,五官科用藥,皮膚科用藥,成人用藥,兒科用藥,肝膽科用藥,神經(jīng)科藥,婦科用藥,日常用藥,呼吸道用藥,泌尿科藥,醫(yī)療器械,營養(yǎng)保健,風(fēng)濕關(guān)節(jié)共15種類型。需要通過藥品代碼來對(duì)藥品質(zhì)量檔案中藥品類型進(jìn)行合并,將最終結(jié)果集成到數(shù)據(jù)集中。
3)屬性規(guī)約
銷售記錄信息包含很多屬性,為了減少挖掘花費(fèi)的時(shí)間,提高數(shù)據(jù)挖掘算法的效果,需要將與建模相關(guān)程度小的屬性刪除。
4)數(shù)據(jù)變換
顧客在購買藥品時(shí),管理系統(tǒng)會(huì)自動(dòng)產(chǎn)生一個(gè)銷售單號(hào),而銷售單號(hào)是能唯一標(biāo)識(shí)顧客的單次購買。在原數(shù)據(jù)集中,顧客買幾種藥品就會(huì)顯示幾個(gè)事務(wù),這樣挖掘結(jié)果可能不準(zhǔn)確,所以需要將相同的銷售單號(hào)購買的藥品合并在一起。
通過數(shù)據(jù)預(yù)處理,最終數(shù)據(jù)集事務(wù)格式如表1所示:
3.3模型構(gòu)建
基于關(guān)聯(lián)規(guī)則的藥品零售數(shù)據(jù)建模流程,如圖3所示。
該模型主要由輸入、算法處理、輸出部分組成。輸入部分主要包括:事務(wù)數(shù)據(jù)庫D、最大頻繁集項(xiàng)數(shù)maxItem、最小支持度minS、最小置信度minC。
算法處理部分是Apriori關(guān)聯(lián)規(guī)則算法,具體處理過程如下:
1)簡(jiǎn)單掃描所有的事務(wù),事務(wù)中每一項(xiàng)都是候選1項(xiàng)集的集合C1的成員,計(jì)算每一項(xiàng)的支持度并與minS做比較,保留大于或等于該閾值的項(xiàng),得到1項(xiàng)頻繁集L1。
2)定義apriori_gen(A,k)函數(shù)產(chǎn)生Ck項(xiàng)集,實(shí)現(xiàn)組內(nèi)連接,A表示第k-1次的頻繁項(xiàng)集,k表示第k頻繁項(xiàng)集,然后通過isExit(C,A)來判斷Ck的非空子集是否存在A中,保留存在的項(xiàng),這個(gè)過程稱為剪枝。
3)對(duì)剪枝后Ck中各項(xiàng)集的支持度與預(yù)先設(shè)定的最小支持度閾值做比較,保留大于或等于該閾值的項(xiàng),得到k項(xiàng)頻繁集。循環(huán)此過程,直到剪枝后的Ck為空集。
4)利用上述得到的頻繁項(xiàng)集計(jì)算置信度,其結(jié)果與minC比較,保留置信度大于或等于該閾值的項(xiàng),產(chǎn)生關(guān)聯(lián)規(guī)則。
3.4模型分析
用上述模型對(duì)建模數(shù)據(jù)進(jìn)行挖掘,點(diǎn)擊數(shù)據(jù)分析界面的“藥品關(guān)聯(lián)”按鈕,設(shè)定最小支持度為1%,置信度為10%,最大頻繁項(xiàng)集為3,顯示個(gè)數(shù)是5,如圖4所示。
點(diǎn)擊“Apriori關(guān)聯(lián)規(guī)則挖掘”按鈕,MATLAB程序輸出的關(guān)聯(lián)規(guī)則如表2。
由藥品的關(guān)聯(lián)規(guī)則可知,日常用藥(感冒藥類,清熱解毒類)、呼吸道用藥、心腦血管用藥、腸胃用藥、五官科用藥、醫(yī)療器械等類別的藥品經(jīng)常被頻繁地購買,它們之間存在著很強(qiáng)的關(guān)聯(lián)性。
由關(guān)聯(lián)規(guī)則1,2可知,購買感冒類藥品的顧客同時(shí)也會(huì)購買消炎類的藥品,這些藥品都是家庭常用藥品,用量非常大。
由關(guān)聯(lián)規(guī)則3可知,腸胃消化不好的顧客通常體質(zhì)比較弱,在購買腸胃道用藥的同時(shí)還會(huì)買類似六味地黃丸、維生素類的藥品,增加腸胃道消化。
由關(guān)聯(lián)規(guī)則4可知,購買神經(jīng)科藥品的顧客會(huì)經(jīng)常購買肝膽科類的藥品,暈車的人常常表現(xiàn)為惡心,嘔吐,頭暈?zāi)垦?,從中醫(yī)治療方法來講,需要滋補(bǔ)肝腎,比如吃點(diǎn)杞菊地黃丸等。
由關(guān)聯(lián)規(guī)則5可知,皮膚受傷或骨頭扭傷的顧客,經(jīng)常購買皮膚用藥或者治療骨傷、風(fēng)濕關(guān)節(jié)藥品的同時(shí),也會(huì)買一些類似創(chuàng)可貼、酒精、棉簽等家用醫(yī)療器械,加快傷口愈合。
藥店在遵循GSP管理規(guī)范的同時(shí)參考這些規(guī)則對(duì)經(jīng)營管理方式做適當(dāng)?shù)恼{(diào)整。一方面,把關(guān)聯(lián)性比較強(qiáng)的藥品放在相鄰的貨架上,方便顧客挑選,節(jié)約購買時(shí)間,增加銷量。另一方面,在進(jìn)貨計(jì)劃上,藥店根據(jù)規(guī)則制定需要購買藥品的數(shù)量,以保證不必要的浪費(fèi)和貨物的充實(shí)。