王明艷
(湖南財(cái)經(jīng)工業(yè)職業(yè)技術(shù)學(xué)院,湖南 衡陽 421002)
大數(shù)據(jù)、云計(jì)算技術(shù)的不斷發(fā)展,改變了人們的教育、醫(yī)療、消費(fèi)等生活習(xí)慣,數(shù)據(jù)量正以驚人的速度擴(kuò)增。海量的數(shù)據(jù)中能夠真正被企業(yè)分析和運(yùn)用的只占較小的一部分。大部分企業(yè)進(jìn)行業(yè)務(wù)決策常常依賴于“直覺”或“本能”。企業(yè)在面對日益激烈的市場競爭時(shí),需要不斷提高決策的準(zhǔn)確度和靈敏度。企業(yè)產(chǎn)生的數(shù)據(jù)隱藏著巨大的商業(yè)價(jià)值,企業(yè)需要從大量數(shù)據(jù)中挖掘出有助于企業(yè)決策的信息與知識(shí)。在此背景下,數(shù)據(jù)挖掘 (Data Mining,DM)、商務(wù)智能 (Business Intelligence,BI)應(yīng)運(yùn)而生,并日益得到了相關(guān)行業(yè)的重視。
零售商店購物系統(tǒng)在運(yùn)作過程中產(chǎn)生了大量的商品消費(fèi)數(shù)據(jù),數(shù)據(jù)蘊(yùn)藏了零售商店所有消費(fèi)者的消費(fèi)行為,如果不加以合理利用,這些數(shù)據(jù)將變得毫無價(jià)值。經(jīng)典的購物籃分析就是幫助企業(yè)針對商品的相關(guān)性分析顧客一般同時(shí)會(huì)購買哪些商品,購買了很多商品之后,還會(huì)購買哪些商品,以及購買這些商品的概率,為企業(yè)的經(jīng)營活動(dòng)提供決策參考。本文采用數(shù)據(jù)挖掘中的Apriori算法,挖掘商品與商品之間的關(guān)聯(lián)關(guān)系,通過了解用戶在店鋪中同時(shí)會(huì)購買什么商品,來優(yōu)化店鋪商品的布局,并將幾種商品擺放在一起或者放在網(wǎng)頁中的同一頁,方便用戶快速找到該商品,促進(jìn)商品的銷售;幫助企業(yè)設(shè)計(jì)有效的促銷方案,將商品進(jìn)行捆綁銷售,推出商品的優(yōu)惠套餐,提升購買的價(jià)值;了解用戶購買了什么商品,還會(huì)購買什么商品,可以在實(shí)體店或電子商務(wù)網(wǎng)站進(jìn)行商品的關(guān)聯(lián)推薦。
DM也稱為數(shù)據(jù)庫中的知識(shí)發(fā)現(xiàn),簡稱KDD(Knowledge Discover in Database),已成為數(shù)據(jù)庫和人工智能(AI)領(lǐng)域的研究熱點(diǎn)。DM的技術(shù)定義是從大量的 (Massive)、不完全的 (Incomplete)、有噪聲的 (Noisy)、模糊的 (Fuzzy)、隨機(jī)的(Random)實(shí)際應(yīng)用數(shù)據(jù)中提取出隱含的(Implicit)、事先不知道的(Previously unknown)、潛在有用的(Potentially useful)信息和知識(shí)的過程[1]。DM是一門交叉學(xué)科,是包含了人工智能、機(jī)器學(xué)習(xí)、高性能計(jì)算、統(tǒng)計(jì)學(xué)、模式識(shí)別、可視化、數(shù)據(jù)庫技術(shù)等學(xué)科領(lǐng)域的產(chǎn)物。數(shù)據(jù)挖掘能幫助企業(yè)預(yù)測未來發(fā)展趨勢并輔助企業(yè)進(jìn)行科學(xué)決策。常見的挖掘算法包含分類與預(yù)測、聚類、關(guān)聯(lián)規(guī)則、孤立點(diǎn)探測,數(shù)據(jù)挖掘廣泛應(yīng)用于零售業(yè)、金融、電信、醫(yī)藥、制造業(yè)、政府等行業(yè)和領(lǐng)域。將數(shù)據(jù)挖掘技術(shù)應(yīng)用于傳統(tǒng)商業(yè)領(lǐng)域可提高企業(yè)數(shù)據(jù)分析能力,優(yōu)化企業(yè)業(yè)務(wù)流程,有效提高企業(yè)市場競爭力。
關(guān)聯(lián)分析(Association analysis)是一種無監(jiān)督的學(xué)習(xí)算法,用于尋找交易事務(wù)中不同商品之間存在的關(guān)聯(lián)關(guān)系。
頻繁項(xiàng)集(Frequent itemsets)是指在數(shù)據(jù)集中頻繁出現(xiàn)的項(xiàng)集,該項(xiàng)集是滿足最小支持度、置信度閾值的所有項(xiàng)的集合。
關(guān)聯(lián)規(guī)則(Association Rules)能夠反映一種事物與其他事物之間的相互依存和關(guān)聯(lián)關(guān)系,關(guān)聯(lián)規(guī)則挖掘可以發(fā)現(xiàn)大量數(shù)據(jù)中項(xiàng)集之間頻繁出現(xiàn)的項(xiàng)集[2]。關(guān)聯(lián)規(guī)則是在1993年SIGMOD會(huì)議上,由Agrawal,lmielinski,Swami提出。關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘中一個(gè)重要的研究方向,通過關(guān)聯(lián)分析能夠?yàn)橛脩籼峁┚哂袇⒖純r(jià)值的信息,輔助決策。對于消費(fèi)者而言,在網(wǎng)上購物時(shí),商城系統(tǒng)會(huì)自動(dòng)為用戶推薦合適的商品、贈(zèng)送優(yōu)惠券,滿足用戶需求的同時(shí)誘導(dǎo)消費(fèi)者消費(fèi)。對于商家而言,通過商品的關(guān)聯(lián)程度設(shè)計(jì)商品的促銷方案、調(diào)整商品的擺放位置和組合方式,方便顧客購買更多所需要的商品,進(jìn)行相關(guān)推薦或?qū)⑾鄳?yīng)的關(guān)聯(lián)商品進(jìn)行精準(zhǔn)營銷,挖掘更多潛在客戶。關(guān)聯(lián)規(guī)則挖掘的步驟是找到所有頻繁項(xiàng)集,頻繁項(xiàng)集生成強(qiáng)關(guān)聯(lián)規(guī)則,關(guān)聯(lián)規(guī)則必須要大于或等于最小支持度和最小置信度。
支持度(Support)是指關(guān)聯(lián)的數(shù)據(jù)在數(shù)據(jù)集中出現(xiàn)的次數(shù)在總數(shù)據(jù)集中所占的比例,在[0,1]中取值。例如購買了A商品,還購買了B商品,支持度計(jì)算公式為Support(A→B)=P(A∪B),該度量值表示A商品和B商品同時(shí)出現(xiàn)的概率。支持度和置信度是Apriori算法中兩個(gè)重要的值,置信度(Confidence)用來表示一個(gè)數(shù)據(jù)出現(xiàn)后,另一個(gè)數(shù)據(jù)出現(xiàn)的概率,即數(shù)據(jù)的條件概率,在[0,1]中取值。置信度的計(jì)算公式為Confidence(A→B)=Support(A∪B)/Support(A),該度量值表示商品A和商品B同時(shí)出現(xiàn)的概率占商品A出現(xiàn)概率的比值。
置信度沒有考慮后項(xiàng)中項(xiàng)集的支持度,因此需要用提升度(Lift)來代替置信度以確保規(guī)則的可信度。提升度反映了關(guān)聯(lián)規(guī)則中商品A與商品B的相關(guān)性,是置信度和后項(xiàng)中項(xiàng)集的支持度的比值,通過Lift(A→B)=Support(A→B)/Support(A)*Support(B)=Confidence(A→B)/Support(B)公式進(jìn)行計(jì)算。當(dāng)Lift(A→B)>1時(shí),表示A對B有誘導(dǎo)作用,A與B正相關(guān),提升度越高,正相關(guān)性越高;當(dāng)Lift(A→B)=1時(shí),表示A與B相互獨(dú)立,沒有相關(guān)性;當(dāng)Lift(A→B)<1時(shí),表示A對B有抑制作用,A與B負(fù)相關(guān),提升度越高,負(fù)相關(guān)性越高。
Apriori算法常用來挖掘數(shù)據(jù)間的關(guān)聯(lián)規(guī)則,在數(shù)據(jù)挖掘中應(yīng)用廣泛,主要通過在大規(guī)模數(shù)據(jù)集中尋找頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則[3]。算法包含兩個(gè)方面,一是尋找頻繁項(xiàng)集,二是挖掘關(guān)聯(lián)規(guī)則。Apriori算法剪枝過程中需要滿足先驗(yàn)性原理,即頻繁項(xiàng)集的子集必為頻繁項(xiàng)集,例如項(xiàng)集{A,C}是頻繁項(xiàng)集,則{A}和{C}也是頻繁項(xiàng)集;非頻繁項(xiàng)集的超集一定是非頻繁項(xiàng)集,例如項(xiàng)集{D}不是頻繁項(xiàng)集,則{A,D}和{C,D}也不是頻繁項(xiàng)集。
Apriori算法包含兩個(gè)步驟,連接步和剪枝步,Apriori算法是將最小支持度和數(shù)據(jù)集作為輸入?yún)?shù),算法首先掃描所有項(xiàng)集表,生成所有單個(gè)元素的項(xiàng)集,接著通過比較項(xiàng)集大于或等于最小支持度和置信度,不滿足的項(xiàng)集將會(huì)被刪除,接著通過連接步生成包含兩個(gè)元素的項(xiàng)集,重復(fù)上述步驟,在通過算法中的剪枝步,將不滿足先驗(yàn)性原理的項(xiàng)集刪除,直到找到滿足要求的頻繁項(xiàng)集。
除了Apriori算法,還有一種經(jīng)典的FP-growth算法。Apriori算法產(chǎn)生頻繁項(xiàng)集的過程中需要多次掃描交易數(shù)據(jù)庫;FP-growth算法是利用樹形結(jié)構(gòu),不需要產(chǎn)生候選頻繁項(xiàng)集,節(jié)省了掃描數(shù)據(jù)庫的次數(shù),加速了尋找頻繁項(xiàng)集的速度。使用FP-growth算法可以高效地發(fā)現(xiàn)頻繁項(xiàng)集,但不能用于發(fā)現(xiàn)關(guān)聯(lián)規(guī)則。因此,在實(shí)際應(yīng)用中,可使用FP-growth算法來找出頻繁項(xiàng)集,采用Apriori算法進(jìn)行關(guān)聯(lián)規(guī)則的挖掘。
采集某零售商店消費(fèi)者購買商品的部分?jǐn)?shù)據(jù),利用Apriori算法對消費(fèi)者購買商品進(jìn)行關(guān)聯(lián)分析。
每一條交易稱為一個(gè)事務(wù),給定一個(gè)事務(wù)集合T(Transaction),假設(shè)Ck是候選項(xiàng)集,Lk是頻繁項(xiàng)集,連接步就是從頻繁k-1項(xiàng)集集合中產(chǎn)生候選k項(xiàng)集集合。表1為事務(wù)購買集合。
表1 事務(wù)購買集合
結(jié)合Apriori算法,對事務(wù)集合進(jìn)行掃描計(jì)數(shù),得到C1候選項(xiàng)集,并計(jì)算支持度,得到相關(guān)數(shù)據(jù),見表2。
表2 C1候選集支持度
通過比較,去掉低于最小支持度50%的項(xiàng)集,產(chǎn)生頻繁項(xiàng)集L1,見第52頁表3。
表3 L 1頻繁項(xiàng)集支持度
接著,進(jìn)行連接步,產(chǎn)生候選項(xiàng)集C2,得到相關(guān)數(shù)據(jù),見第52頁表4。
表4 C2候選集支持度
通過比較,去掉低于最小支持度50%的項(xiàng)集,產(chǎn)生頻繁項(xiàng)集L2,得到相關(guān)數(shù)據(jù),見第52頁表5。
表5 L 2頻繁項(xiàng)集支持度
由表5可知, {堅(jiān)果炒貨,果干蜜餞}和{餅干蛋糕,果干蜜餞}相乘,得到{堅(jiān)果炒貨,餅干蛋糕,果干蜜餞},通過Apriori算法的剪枝步將非頻繁項(xiàng)集刪除,例如{堅(jiān)果炒貨,餅干蛋糕,果干蜜餞}的3個(gè)子項(xiàng), {堅(jiān)果炒貨,餅干蛋糕},{堅(jiān)果炒貨,果干蜜餞},{餅干蛋糕,果干蜜餞},其中{堅(jiān)果炒貨,餅干蛋糕}不在頻繁2-項(xiàng)集中,經(jīng)過剪枝得到頻繁3-項(xiàng)集{餅干蛋糕,果干蜜餞,休閑零食},見表6。
表6 L 3頻繁項(xiàng)集支持度
結(jié)束算法得到關(guān)聯(lián)規(guī)則:顧客購買了餅干蛋糕,又購買了果干蜜餞,接下來購買休閑零食的可能性是50%/50%,即100%,因此顧客購買了餅干蛋糕和果干蜜餞,就一定會(huì)購買休閑零食。
SPSS Modeler軟件(原名Clementine)是一個(gè)直觀的、拖放式的數(shù)據(jù)挖掘工具,是領(lǐng)先可視化數(shù)據(jù)科學(xué)和預(yù)測分析的平臺(tái),可以快速建立預(yù)測性模型,能夠進(jìn)行數(shù)據(jù)準(zhǔn)備和發(fā)現(xiàn)、預(yù)測分析,幫助企業(yè)實(shí)現(xiàn)價(jià)值并獲得預(yù)期的效果。SPSS Modeler軟件提供了一系列數(shù)據(jù)挖掘技術(shù),可以滿足任何數(shù)據(jù)挖掘需要,包含預(yù)測、聚類、關(guān)聯(lián)、分類等算法[4]。
零售商店消費(fèi)者購買記錄存放在SPSS文件中,打開SPSS Modeler軟件后,將一個(gè)SPSS統(tǒng)計(jì)文件拖拽到數(shù)據(jù)流編輯區(qū)進(jìn)行數(shù)據(jù)收集、數(shù)據(jù)展示與預(yù)處理、數(shù)據(jù)建模、模型評價(jià)等。打開零售商店消費(fèi)者購買記錄.sav文件,并勾選“使用字段格式信息確定存儲(chǔ)類型”,通過過濾器將不需要的字段刪除,例如將商品的單價(jià)等對商品關(guān)聯(lián)分析沒有價(jià)值的字段去掉,只留下商品信息和消費(fèi)者ID,接著讀取數(shù)據(jù)類型,并預(yù)覽表中所有的原始數(shù)據(jù)記錄。
通過消費(fèi)者ID對消費(fèi)者進(jìn)行排序,在節(jié)點(diǎn)工具中選擇記錄排序,拖動(dòng)記錄選項(xiàng)下的排序到數(shù)據(jù)流編輯區(qū),并將數(shù)據(jù)流編輯區(qū)中的消費(fèi)者購買記錄.sav文件與排序節(jié)點(diǎn)建立連接,接著對排序節(jié)點(diǎn)進(jìn)行設(shè)置,按照消費(fèi)者ID進(jìn)行升序排序。接著在節(jié)點(diǎn)工具下選擇“設(shè)為標(biāo)志”節(jié)點(diǎn)來實(shí)現(xiàn)整個(gè)數(shù)據(jù)的標(biāo)志化、結(jié)構(gòu)化的處理,具體操作步驟是:首先通過讀取前的商品信息得到可用的設(shè)置值;其次勾選“字段名擴(kuò)展”設(shè)置字段的前綴或后綴名稱,通過向左的按鈕創(chuàng)建“標(biāo)志字段”,標(biāo)志字段分別用T和F表示,T表示消費(fèi)者購買了哪種商品,F(xiàn)表示消費(fèi)者未購買該種商品;最后勾選匯總關(guān)鍵字,通過消費(fèi)者ID進(jìn)行匯總,將多條同一消費(fèi)者ID記錄變成一條記錄。通過上述步驟完成數(shù)據(jù)預(yù)處理階段,下面將對得到的數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析。
在數(shù)據(jù)預(yù)處理的基礎(chǔ)上,通過Apriori算法實(shí)現(xiàn)建模的分析。首先,可以通過字段選項(xiàng)的“類型”節(jié)點(diǎn)制定變量的角色,將類型節(jié)點(diǎn)拖動(dòng)到數(shù)據(jù)流編輯區(qū),建立過濾器節(jié)點(diǎn)與類型節(jié)點(diǎn)的連接,編輯類型節(jié)點(diǎn),將類型中的每一種角色都設(shè)置為“任意”,各字段既是輸入又是目標(biāo)。其次,使用Apriori算法構(gòu)建關(guān)聯(lián)規(guī)則模型,將建模下的Apriori節(jié)點(diǎn)拖動(dòng)至數(shù)據(jù)流編輯區(qū),建立類型與Apriori節(jié)點(diǎn)之間的連接并編輯,字段設(shè)置為使用預(yù)定義角色,模型設(shè)置選擇自動(dòng),使用“分區(qū)數(shù)據(jù)”,勾選“僅包含標(biāo)志變量的true值”,并設(shè)置Apriori算法里的最小支持度、置信度和最大前項(xiàng)數(shù)。設(shè)置完成后點(diǎn)擊運(yùn)行,可以得到一個(gè)能夠反映數(shù)據(jù)之間強(qiáng)弱關(guān)系的網(wǎng)絡(luò)圖,商品與商品間連接線的粗細(xì)能夠表示連接強(qiáng)度,網(wǎng)絡(luò)圖的下方含有閾值條限定,用于顯示連接線的頻數(shù)值,拖動(dòng)閾值條,得到新的網(wǎng)絡(luò)圖,線條的粗細(xì)也發(fā)生了變化,關(guān)聯(lián)程度低的商品不會(huì)顯示在網(wǎng)絡(luò)圖中。最后,為了達(dá)成更為直觀的效果,將展示結(jié)果用表格的形式輸出,繼續(xù)過濾,只顯示消費(fèi)者ID號(hào)以及系統(tǒng)推薦的商品。
綜上所述,借助SPSS Modeler軟件,采用Apriori算法實(shí)現(xiàn)零售商店購買記錄數(shù)據(jù)的關(guān)聯(lián)分析,挖掘出關(guān)聯(lián)規(guī)則,并應(yīng)用到銷售過程中,顧客在購買了某種商品后,向他們推薦可能會(huì)購買的商品,可通過商品之間的關(guān)聯(lián)關(guān)系來設(shè)計(jì)商品促銷方案、商品的陳列方式,促進(jìn)銷售,提高店鋪營收。