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