王 輝 李昌剛
(浙江萬(wàn)里學(xué)院 浙江 寧波 315100)
目前,隨著云計(jì)算與大數(shù)據(jù)技術(shù)的不斷發(fā)展,電子商務(wù)展現(xiàn)出井噴式的發(fā)展速度,這為企業(yè)帶來(lái)了龐大的消費(fèi)者。同時(shí),數(shù)據(jù)庫(kù)技術(shù)的發(fā)展使得企業(yè)能夠輕松地采集并存儲(chǔ)消費(fèi)者在產(chǎn)生購(gòu)買行為時(shí)的信息。得益于以上條件,越來(lái)越多的企業(yè)形成以“客戶”為核心驅(qū)動(dòng)的營(yíng)銷模式,通過識(shí)別現(xiàn)有或潛在客戶可能感興趣的新商品來(lái)改進(jìn)產(chǎn)品以滿足客戶期望[1]。配合柔性供應(yīng)鏈,這種營(yíng)銷模式不僅能夠縮短商品的生命周期,擴(kuò)大營(yíng)業(yè)規(guī)模,同時(shí)也能針對(duì)不同類別的客戶采取不同的客戶管理模型以支持企業(yè)在市場(chǎng)的特定部分領(lǐng)先于競(jìng)爭(zhēng)對(duì)手。因此,采取有效的辦法,從而快速、正確地識(shí)別不同客戶的購(gòu)買偏好以及其所對(duì)應(yīng)的商品特性,并將之歸納到不同的集群中,是客戶管理的重點(diǎn)。
為解決這些問題,研究以某服裝公司在亞馬遜平臺(tái)上的數(shù)據(jù)作為實(shí)驗(yàn)對(duì)象。首先采用K-means算法與PCA分析與挖掘更多的數(shù)據(jù),例如客戶的行為信息、描述商品的文本信息等,其中PCA將彌補(bǔ)K-means算法聚類結(jié)果不準(zhǔn)確的缺點(diǎn)。數(shù)據(jù)分析的目的是為了形成更準(zhǔn)確且更可解釋的客戶行為模式集群,分析人員可充分依據(jù)分類后的結(jié)果來(lái)了解顧客的消費(fèi)模式,并制定相應(yīng)的營(yíng)銷策略。其次,本文還構(gòu)建了客戶預(yù)測(cè)模型,模型在預(yù)測(cè)個(gè)人客戶的購(gòu)買模式方面提供了更好的適應(yīng)性和性能。管理人員可以更方便地使用預(yù)測(cè)分析結(jié)果進(jìn)一步開展客群定位和溝通策略的工作。
商品特性表征和客戶偏好預(yù)測(cè)本質(zhì)上是對(duì)客戶所產(chǎn)生的歷史數(shù)據(jù)進(jìn)行挖掘,并分析出客戶的購(gòu)買行為模式以及所對(duì)應(yīng)的商品特性。因此,完成以上任務(wù)的關(guān)鍵在于選擇合適的數(shù)據(jù)挖掘方法,總體的研究可分為兩類:一是對(duì)文本數(shù)據(jù)的挖掘,通常是對(duì)商品的描述性文本以及對(duì)客戶的評(píng)論進(jìn)行挖掘;二是對(duì)數(shù)值型數(shù)據(jù)進(jìn)行挖掘,對(duì)數(shù)據(jù)庫(kù)中的海量數(shù)據(jù)進(jìn)行聚類或者關(guān)聯(lián)分析。
對(duì)于文本數(shù)據(jù)挖掘而言,使用不同的數(shù)據(jù)挖掘方法旨在分析出客戶對(duì)各種商品特征的偏好[2]。文獻(xiàn)[3]基于客戶在購(gòu)買商品后的評(píng)論中,通過層次關(guān)注機(jī)制增強(qiáng)了長(zhǎng)期短期記憶網(wǎng)絡(luò),該機(jī)制包括目標(biāo)層次關(guān)注和句子層次關(guān)注。還回顧了用于文本數(shù)據(jù)挖掘的各種算法以及數(shù)據(jù)的預(yù)處理技術(shù)。近年來(lái),文本數(shù)據(jù)挖掘還引入了深度學(xué)習(xí)方法。文獻(xiàn)[4]研究了基于客戶評(píng)論的情緒分析的深度學(xué)習(xí)方法的比較審查,發(fā)現(xiàn)了基于在線評(píng)論的意見挖掘來(lái)提取客戶偏好和商品屬性的各種方法。Lee[5]提出了一種有監(jiān)督的機(jī)器學(xué)習(xí)方法,用于從在線評(píng)論中識(shí)別客戶偏好。Wang等[6]提出了一種系統(tǒng)的方法,用于從在線評(píng)論中提取商品屬性,并使用貝葉斯線性回歸開發(fā)客戶偏好模型。
由于客戶的評(píng)論或者采訪數(shù)據(jù)會(huì)存在較大的主觀偏差,這導(dǎo)致文本數(shù)據(jù)挖掘方法在實(shí)際應(yīng)用中取得的性能低于在訓(xùn)練數(shù)據(jù)上表現(xiàn)。因此在學(xué)術(shù)界更傾向于使用數(shù)值型數(shù)據(jù)來(lái)分析客戶行為,這些方法基于從過去的購(gòu)買行為中提取客戶的潛在特征,其觀念是觀察到的行為是潛在隨機(jī)過程的結(jié)果[7]。這種客戶行為偏好預(yù)測(cè)的方法可以稱為特征方法,Jahromi等[8]根據(jù)過去的購(gòu)買信息開發(fā)了一個(gè)模型,用于預(yù)測(cè)客戶是否在某個(gè)規(guī)定的未來(lái)時(shí)間范圍內(nèi)進(jìn)行購(gòu)買。他們提出了客戶特征,例如,過去時(shí)間框架中觀察到的交易數(shù)量、上次交易的時(shí)間以及客戶總支出的相對(duì)變化,從而發(fā)現(xiàn)了一種自適應(yīng)增強(qiáng)方法在測(cè)試數(shù)據(jù)上表現(xiàn)最佳,AUC值為0.92。雖然該模型在特定的數(shù)據(jù)集上去取得了較高的AUC,但不可否認(rèn)的是,對(duì)于一般數(shù)據(jù)集或者一般預(yù)測(cè)任務(wù)而言,存在兩個(gè)可以改善的區(qū)域:一是特征的數(shù)量還可以繼續(xù)增加,二是預(yù)測(cè)的時(shí)間范圍還可以再縮短,因?yàn)樵谄髽I(yè)經(jīng)營(yíng)中較短的時(shí)間框架是有益的。此外,由于客戶偏好與設(shè)計(jì)或商品屬性之間的關(guān)系可能非常復(fù)雜和非線性[9],因此,迄今為止還沒有開發(fā)出能夠模擬復(fù)雜關(guān)系的理論模型。為了解決這個(gè)問題,已經(jīng)采用了相當(dāng)多的模糊方法,包括模糊推理方法[10]、基于模糊規(guī)則的系統(tǒng)、基于非線性規(guī)劃的模糊回歸[11]和模糊線性回歸等[12]。
對(duì)相關(guān)工作進(jìn)行梳理后發(fā)現(xiàn),針對(duì)商品特性表征和客戶偏好預(yù)測(cè)研究存在以下三方面問題:① 將文本挖掘與數(shù)據(jù)挖掘結(jié)合在一起的較少;② 特征的選取數(shù)目還可以進(jìn)一步增加;③ 將商品特性表征與客戶偏好預(yù)測(cè)結(jié)合在一起的研究不多;④ 預(yù)測(cè)模型往往是單一模型,單一模型可能在特定的數(shù)據(jù)集上表現(xiàn)出良好的性能,但是實(shí)際應(yīng)用中會(huì)由于缺乏泛化能力而導(dǎo)致過擬合。
K-means算法[13-15]是一種無(wú)監(jiān)督算法,其機(jī)理是通過最小化每個(gè)點(diǎn)與其最近的聚類均值(質(zhì)心)之間的平方距離之和,將N個(gè)數(shù)據(jù)點(diǎn)分組為k個(gè)聚類。該目標(biāo)函數(shù)稱為平方和誤差(SSE)。
模型首先選擇k個(gè)隨機(jī)數(shù)據(jù)點(diǎn)作為初始質(zhì)心集,然后通過兩個(gè)后續(xù)步驟進(jìn)行改進(jìn)。在賦值步驟中,每個(gè)點(diǎn)都放入最近的質(zhì)心的簇中。在更新步驟中,每個(gè)群集的質(zhì)心將重新計(jì)算為分配給群集的所有數(shù)據(jù)點(diǎn)的平均值。這兩個(gè)步驟一起構(gòu)成了K-means的一次迭代來(lái)微調(diào)簇邊界和質(zhì)心位置,同時(shí)可以人為設(shè)置迭代次數(shù)直到收斂(即沒有獲得進(jìn)一步的改進(jìn))。
主成分分析(PCA)[16]是一種通用的降維和數(shù)據(jù)分析工具,主要用于模式識(shí)別、人工智能和數(shù)據(jù)挖掘等重要研究領(lǐng)域。PCA的本質(zhì)是通過線性變換將高維空間中的數(shù)據(jù)樣本投影到低維空間,同時(shí)盡可能地保留原始數(shù)據(jù)特征。假設(shè)X=[x1,x2,…,xn]是輸入數(shù)據(jù)集,其中每列的維度為d。進(jìn)一步,假設(shè)數(shù)據(jù)集中每個(gè)特征的平均值等于零(E(X)=0),正交變換A用于將X映射到新空間Y中,表示如下:
Y=AX
(1)
假設(shè)E(X)=0,則E(Y)=0且Y的協(xié)方差矩陣為:
RY=ARXAT
(2)
式中:RX是X的協(xié)方差矩陣。當(dāng)A的行是RX的特征向量,則使用該變換;變換后,樣本在新空間中變得不相關(guān)。注意到,樣本在特征空間(映射)空間中是d維的,然而,PCA變換的目標(biāo)是創(chuàng)建k Stacking集成學(xué)習(xí)方法[17]的原理是堆疊泛化,這是一種最小化一個(gè)或多個(gè)基礎(chǔ)分類器的泛化誤差的方案。通過將基分類器的預(yù)測(cè)結(jié)果作為元分類器的輸入來(lái)形成Stacking集成模型。當(dāng)有多個(gè)基分類器時(shí),可以將堆疊泛化視為更復(fù)雜的交叉驗(yàn)證,利用比交叉驗(yàn)證相比更復(fù)雜的策略結(jié)合各個(gè)基分類器,并使用元學(xué)習(xí)器來(lái)估計(jì)基分類器在特定數(shù)據(jù)集合上形成預(yù)測(cè)錯(cuò)誤的可能性。一個(gè)簡(jiǎn)單的兩層Stacking集成學(xué)習(xí)模型的流程如算法1所示。 算法1Stacking集成學(xué)習(xí)模型 Input:訓(xùn)練集:S1={(x1,y1),(x2,y2),…,(xm,ym)} 保留集:Shold-out={(x1,y1),(x2,y2),…,(xl,yl)} 測(cè)試集:S2={(x1,y1),(x2,y2),…,(xm,ym)} 基分類器:ζ1,ζ2,…,ζL 元分類器:ζmeta Step1:fori=1,2,…,l doζifit(xi,yi)->生成l個(gè)基分類器 end Step2:fori=1,2,…,l doPi=ζi.predicthold-out(xi,yi)->生成l個(gè)保留集上的預(yù)測(cè)向量 doHi=ζi.predictS2->生成l個(gè)測(cè)試集上的預(yù)測(cè)向量 end Step3:P=((p1∪p2∪…∪pl),yi) H=(h1∪h2∪…∪hl) ζmetafitP Step4:ζmetapredictH Output:生成測(cè)試集上的預(yù)測(cè)值 由于Stacking模型使用基分類器在第一層產(chǎn)生的預(yù)測(cè)值作為第二層的輸入,這意味著基分類器與元學(xué)習(xí)器所使用的訓(xùn)練數(shù)據(jù)必須不同,否則數(shù)據(jù)會(huì)被過渡學(xué)習(xí),導(dǎo)致模型的過擬合。因此在分割原始數(shù)據(jù)集時(shí),第一要保證每份數(shù)據(jù)都有訓(xùn)練集和保留集,使用基分類器在保留集上的預(yù)測(cè)數(shù)據(jù)作為第二層的訓(xùn)練數(shù)據(jù);第二在分割時(shí)間序列數(shù)據(jù)時(shí),要保持?jǐn)?shù)據(jù)的同分布,不能簡(jiǎn)單地以時(shí)間線來(lái)分割數(shù)據(jù)集。這些工作會(huì)讓模型有更好的性能提升和泛化能力。 表1 K個(gè)客戶交易信息的原始數(shù)據(jù) 根據(jù)數(shù)據(jù)描述,本文研究需要解決的問題如下: (1) 正確的商品特性表征與客戶群細(xì)分。由于本次研究的最終目的為預(yù)測(cè)客戶的購(gòu)買偏好以及該偏好所對(duì)應(yīng)的商品特性表征,因此,首先需要完成的是對(duì)商品特性的正確分類,在此基礎(chǔ)之上,結(jié)合原始數(shù)據(jù)產(chǎn)生有效的訓(xùn)練數(shù)據(jù),訓(xùn)練數(shù)據(jù)需要囊括每一類客戶的消費(fèi)習(xí)慣,并能夠標(biāo)記該客戶的類別。隨之而帶來(lái)的問題是需要從表1中的數(shù)據(jù)中識(shí)別出客戶、商品、交易之間的關(guān)聯(lián)性,即需要在樣本空間中形成各類簇,每一簇代表不同的客戶群體并對(duì)其進(jìn)行標(biāo)簽,同時(shí)這些客戶群體要滿足充分代表總體樣本以及群體個(gè)數(shù)準(zhǔn)確的條件。 整個(gè)實(shí)驗(yàn)流程依次為:數(shù)據(jù)描述、數(shù)據(jù)處理、商品聚類、客戶聚類、客戶偏好預(yù)測(cè)。研究通過結(jié)合PCA、K-means和Stacking集成方法模型來(lái)解決3.1節(jié)中所提出的問題。實(shí)驗(yàn)流程如圖1所示。 圖1 實(shí)驗(yàn)流程 其中,PCA將被用于兩點(diǎn): 1) 利用PCA能夠有效過濾掉不相關(guān)屬性的特點(diǎn),將PCA應(yīng)用于文本數(shù)據(jù)挖掘,在大量的描述詞中篩選出最重要的關(guān)鍵詞來(lái)協(xié)助商品聚類。 2) 由于K-means算法的初始質(zhì)心數(shù)目需要人為指定,這會(huì)帶來(lái)不正確的聚類結(jié)果,利用PCA降低維數(shù)的特性幫助在應(yīng)用K-means算法時(shí)為數(shù)據(jù)集定義合適的初始質(zhì)心。 在執(zhí)行完P(guān)CA分析之后,使用K-means完成數(shù)據(jù)集的聚類,研究將評(píng)估聚類結(jié)果并結(jié)合實(shí)際數(shù)據(jù)來(lái)解釋聚類結(jié)果。 此外,設(shè)計(jì)Stacking集成學(xué)習(xí)模型將用來(lái)解決問題2。這是由于聚類結(jié)果將以數(shù)據(jù)標(biāo)簽的形式應(yīng)用分類算法構(gòu)建對(duì)數(shù)據(jù)集的監(jiān)督分類。Stacking集成學(xué)習(xí)模型不僅保持對(duì)現(xiàn)有數(shù)據(jù)集的高精度預(yù)測(cè),而且在新數(shù)據(jù)集上具有相同的良好性能。以下說明各個(gè)步驟的處理方法與結(jié)果。 1) 數(shù)據(jù)描述與處理。本次實(shí)驗(yàn)數(shù)據(jù)來(lái)自某公司在亞馬遜平臺(tái)上的數(shù)據(jù)庫(kù)記錄信息。數(shù)據(jù)由541 909個(gè)樣本組成,其中,特征變量有8個(gè),特征變量的字段與表示信息如表2所示。 表2 變量信息與示例 對(duì)于數(shù)據(jù)挖掘模型,良好的數(shù)據(jù)質(zhì)量是提高模型性能的關(guān)鍵因素。缺失數(shù)據(jù)或者異常數(shù)據(jù)會(huì)讓數(shù)據(jù)的分布變得不規(guī)律,從而無(wú)法讓模型從數(shù)據(jù)中學(xué)習(xí)到更多的經(jīng)驗(yàn)以及讓模型無(wú)法獲得抗干擾能力。因此對(duì)原始數(shù)據(jù)進(jìn)行清洗處理:刪除空值和刪除交易異常數(shù)據(jù)。清洗處理后的數(shù)據(jù)共有22 190行,8列。 2) 商品特性表征。在顧客的類別預(yù)測(cè)中,判斷顧客將會(huì)購(gòu)買哪種種類的商品是預(yù)測(cè)的目的之一,也是管理者最關(guān)注的問題之一,預(yù)測(cè)結(jié)果將協(xié)助管理者對(duì)顧客指定更個(gè)性化的營(yíng)銷策略與維護(hù)策略。然而,不可能將顧客與每一種商品一一對(duì)應(yīng),重要的是預(yù)測(cè)出顧客可能喜歡的某種類型的商品。通過定義一個(gè)商品集群,不僅能夠最大程度地給顧客提供可選擇的空間,也是降低了企業(yè)的銷售風(fēng)險(xiǎn)。另外,由于只對(duì)商品進(jìn)行分類,因此數(shù)據(jù)不用包含所有商品,即使企業(yè)在未來(lái)有新商品推出,也可基于預(yù)測(cè)的類別標(biāo)簽對(duì)顧客進(jìn)行商品推薦。 在原始數(shù)據(jù)集中,涉及到商品的維度有“StockCode”與“Description”,應(yīng)該對(duì)商品描述中的文本信息進(jìn)行挖掘,從而形成若干個(gè)可描述的商品類別。為現(xiàn)實(shí)正確的商品類別分類,首先從Description變量中提取有用信息。在谷歌云平臺(tái)Colab中,定義信息抓取程序,程序?qū)?shí)現(xiàn)以下功能: (1) 提取商品描述中出現(xiàn)的名稱。 (2) 針對(duì)每個(gè)名稱,提取單詞的詞根并聚合與此特定根所關(guān)聯(lián)的名稱集合。 (3) 計(jì)算每個(gè)詞根在數(shù)據(jù)框架中出現(xiàn)的次數(shù)。 (4) 當(dāng)超過某個(gè)閾值的單詞集同時(shí)擁有某個(gè)詞根時(shí),程序判定與此詞根相關(guān)的最短詞匯為“關(guān)鍵詞”。 程序?qū)⒎祷厮姆N信息,分別為:關(guān)鍵詞、關(guān)鍵詞與詞根形成的字典、關(guān)鍵詞的個(gè)數(shù)。接著在程序中導(dǎo)入Python提供的自然語(yǔ)言工具包NLTK來(lái)進(jìn)行文本處理。返回的部分信息如表3所示。 表3 文本處理的部分結(jié)果 在將關(guān)鍵字?jǐn)?shù)目從字典轉(zhuǎn)換為列表結(jié)構(gòu)后,得到的列表包含1 400多個(gè)關(guān)鍵詞,其中最常見的出現(xiàn)在200多個(gè)商品中。值得注意的是,有些名稱是無(wú)用的,攜帶的信息不足。因此,考慮將無(wú)用關(guān)鍵詞從列表中刪除,只留下出現(xiàn)次數(shù)超過13的關(guān)鍵詞,數(shù)量為193。完成文本分析后,為了便于使用K-means算法將商品分類,將所有商品進(jìn)行one-hot編碼,形成矩陣X。若商品i的描述中含有關(guān)鍵詞j,則ai,j=1,否則為0,如表4所示。 表4 編碼結(jié)果 由于只挑選了193個(gè)關(guān)鍵詞,所以矩陣X會(huì)存在大量的0元素,可能會(huì)導(dǎo)致分類的結(jié)果不平衡,因此引入價(jià)格區(qū)間使元素?cái)?shù)量更加均衡。將所有商品的單價(jià)放入0~10、跨度為1的區(qū)間內(nèi),共形成6個(gè)區(qū)間,各區(qū)間的商品數(shù)量如表5所示。在矩陣中增加6列,表示商品的價(jià)格范圍,最終組成可作為K-means模型的輸入數(shù)據(jù)。 表5 商品價(jià)格區(qū)間及對(duì)應(yīng)數(shù)量 實(shí)驗(yàn)在初始階段設(shè)置K-means的聚類簇個(gè)數(shù)為3~10,在觀察不同數(shù)量的聚類簇個(gè)數(shù)下模型的silhouette得分后,發(fā)現(xiàn)當(dāng)聚類簇個(gè)數(shù)超過5個(gè)時(shí),有些聚類簇只包含很少的元素。因此,選擇將聚類簇?cái)?shù)確定為5,并反復(fù)迭代,直到得到可能的最佳silhouette得分,在本次研究中,多次迭代后的最佳silhouette得分為0.145 5。為了評(píng)估分類的質(zhì)量,計(jì)算不同聚類簇中每個(gè)元素的輪廓分?jǐn)?shù)并將其可視化在圖2中??梢钥吹剑弘m然聚類簇2與聚類簇3的所包含的元素最多,但總體上各集群的元素?cái)?shù)量比較平衡,另外,當(dāng)具有5個(gè)聚類簇個(gè)數(shù)時(shí),K-means模型的silhouette得分為0.145 5,很顯然各聚類簇的silhouette得分超過了0.145 5。因此當(dāng)聚類簇個(gè)數(shù)的取值為5時(shí),商品的分類是合理的。 圖2 不同聚類簇中的元素的輪廓得分 完成商品聚類后,可以查看每個(gè)聚類簇表示的對(duì)象類型。為了獲得各聚類簇內(nèi)容的全局視圖可以生成形容每類商品的詞云,如圖3所示。可以發(fā)現(xiàn),其中一個(gè)集群包含可以與禮物關(guān)聯(lián)的對(duì)象(關(guān)鍵字:圣誕節(jié)、包裝、卡片)。另一個(gè)聚類簇更多包含奢侈品和珠寶(關(guān)鍵詞:項(xiàng)鏈、手鐲、蕾絲和銀色)。通過此種方法將客戶所購(gòu)買的商品特性進(jìn)行表征,以此從客戶所購(gòu)買的繁雜的商品類別中構(gòu)建在客戶購(gòu)買偏好與商品之間的聯(lián)系,當(dāng)預(yù)測(cè)出客戶的購(gòu)買偏好時(shí),管理者可根據(jù)預(yù)測(cè)結(jié)果中商品所對(duì)應(yīng)的類別進(jìn)行產(chǎn)品推薦。 圖3 不同聚類簇中的關(guān)鍵詞 3) 客戶分類。將客戶分成各種類別是本次研究的重點(diǎn),每一類都代表某個(gè)群體的共同偏好。各類中的客戶偏好信息包含:客戶所偏好的商品、價(jià)格段、購(gòu)買數(shù)量和消費(fèi)金額。這些信息將充分地幫助管理者進(jìn)行客戶偏好的評(píng)估并制定相應(yīng)的營(yíng)銷策略。綜上考慮,研究將客戶分類任務(wù)分成三部分: (1) 第一部分整合數(shù)據(jù)。在3.1節(jié)中,已經(jīng)將不同的商品分為五個(gè)聚類簇。為了準(zhǔn)備剩下的分析,第一步是將此信息引入訂單信息的數(shù)據(jù)框架,訂單信息為客戶ID。為此,首先建立變量“購(gòu)物金額”表示客戶在包括本次訂單在內(nèi),一共在平臺(tái)上所消費(fèi)的金額。其次,加入“金額_n”表示客戶在不同商品類別中所消費(fèi)的金額,目的是從側(cè)面反應(yīng)各客戶的購(gòu)買能力。為添加更多的信息來(lái)補(bǔ)充客戶類別信息,引入客戶購(gòu)買的數(shù)量、購(gòu)買金額的最大、最小和平均值,最后還定義了距離某次訂單產(chǎn)生時(shí)間的第一次購(gòu)買以來(lái)的天數(shù)和自上次購(gòu)買以來(lái)的天數(shù)。將這些信息整合,形成如表6的數(shù)據(jù)框架。 表6 整理后的客戶信息 (2) 第二部分是分割數(shù)據(jù)集,表6包含為期12個(gè)月的信息。然而本次研究的目標(biāo)之一是開發(fā)一個(gè)模型,該模型能夠描述和預(yù)測(cè)客戶在第一次訪問站點(diǎn)后的購(gòu)買習(xí)慣。為了能夠模擬真實(shí)的情形,將數(shù)據(jù)集進(jìn)行了分割,前10個(gè)月的信息作為訓(xùn)練集,后兩個(gè)月的信息作為測(cè)試集。 (3) 第三部分可分為兩小部分,首先為數(shù)據(jù)編碼部分,由于訂單號(hào)對(duì)客戶分類并沒有影響,將此信息刪除,并將剩余數(shù)據(jù)做標(biāo)準(zhǔn)化處理。目的是為了讓數(shù)據(jù)不受量綱的影響。其次是客戶分類部分,在分類之前,使用PCA對(duì)輸入數(shù)據(jù)進(jìn)行降維處理,目的為了幫助選擇K-means的聚類簇個(gè)數(shù)數(shù)量,同時(shí)也能夠驗(yàn)證不同簇的聚類質(zhì)量。圖4顯示了執(zhí)行PCA的分析結(jié)果,包括主成分與其解釋方差。可以觀察到,當(dāng)主成分超過6時(shí),可解釋近全部的方差。因此在選擇K-means聚類簇個(gè)數(shù)時(shí),結(jié)合管理經(jīng)驗(yàn),在7-15區(qū)間選擇整數(shù)聚類簇個(gè)數(shù)。經(jīng)觀察,發(fā)現(xiàn)當(dāng)聚類簇個(gè)數(shù)為11時(shí),模型取得了最高的silhouette得分:0.213。由于不同聚類簇的規(guī)模存在著一定的差異。因此使用PCA的結(jié)果來(lái)理解這些集群內(nèi)容,以便驗(yàn)證這種分類結(jié)果。 圖4 PCA分析結(jié)果 實(shí)驗(yàn)將各聚類簇的結(jié)果顯示在6個(gè)主成分上,如圖5所示??梢钥闯?,第一個(gè)主成分允許將最小的集群與其他聚類簇分開。更一般地說,可以到觀察到總是存在一種表示,其中兩個(gè)聚類簇看起來(lái)是不同的。另外,圖6顯示了不同聚類簇中元素的silhouette得分。各聚類簇的分?jǐn)?shù)均超過了0.2。因此確定將客戶分為11類。 圖5 不同客戶聚類簇在主成分上的分布 圖6 不同客戶聚類簇的silhouette得分 完成客戶分類后,重要的是得到每個(gè)客戶群體的消費(fèi)偏好。為此,首先在表7加入“客戶群體”列,表示各客戶屬于哪一群體,形成新的數(shù)據(jù)框架。其次,通過選擇不同的客戶群體來(lái)平均數(shù)據(jù)框架中的內(nèi)容并加入每個(gè)群體的客戶數(shù)量,形成全局?jǐn)?shù)據(jù)框架,如表7所示。并將其可視化,如圖7所示??梢钥吹饺忠晥D表達(dá)出了各個(gè)群體的消費(fèi)習(xí)慣,例如,可以看出,前5個(gè)群體對(duì)應(yīng)于某一特定商品類別的購(gòu)買占很大的優(yōu)勢(shì)。其他組別會(huì)與顧客總消費(fèi)額或總瀏覽次數(shù)有所不同。管理者基于此信息可以正確制定客戶管理方案以及營(yíng)銷方案。 圖7 不同客戶聚類簇的消費(fèi)偏好的全局視圖 表7 不同客戶群體的消費(fèi)習(xí)慣 (4) 客戶偏好預(yù)測(cè)。首先通過在表6中加入每個(gè)客戶的分類結(jié)果來(lái)構(gòu)建用于分類算法建模的訓(xùn)練集和測(cè)試集,其次,定義模型使用網(wǎng)格搜索與交叉驗(yàn)證來(lái)為每個(gè)模型選擇超參數(shù)。在此次研究中,選擇使用了支持向量機(jī)、邏輯回歸、K近鄰算法、決策樹、隨機(jī)森林和Gradient Boosting模型作為基分類器。在使用Stacking集成學(xué)習(xí)模型之前,需要評(píng)估每個(gè)模型的差異性。因此選擇觀察各基學(xué)習(xí)器在不同訓(xùn)練樣本上的學(xué)習(xí)曲線來(lái)考察各分類模型的性能。圖8顯示了在訓(xùn)練集上使用交叉驗(yàn)證方法后,各模型在訓(xùn)練集上與驗(yàn)證集上的精度。 圖8 單一模型在訓(xùn)練集與驗(yàn)證集上的精度對(duì)比 從圖8可以看到各模型的性能之間存在明顯差別,交叉驗(yàn)證中表現(xiàn)最好的為隨機(jī)森林模型,其取得了90.03%的準(zhǔn)確率。然而基于樹模型的決策樹、隨機(jī)森林、Gradient模型有過擬合的風(fēng)險(xiǎn)。雖然支持向量機(jī)、邏輯回歸、K近鄰模型在交叉驗(yàn)證中形成了典型的低方差建模。綜上,將以上6種算法作為基分類器,并選擇XGBoost作為Stacking集成學(xué)習(xí)模型的元分類器,搭建集成學(xué)習(xí)框架如圖9所示。 圖9 Stacking集成學(xué)習(xí)框架 在完成Stacking集成學(xué)習(xí)的框架搭建后,使用表1所述的算法在已經(jīng)分好的數(shù)據(jù)集中完成模型的訓(xùn)練,并產(chǎn)生最終結(jié)果。為了體現(xiàn)Stacking模型的泛化能力,實(shí)驗(yàn)還設(shè)計(jì)了普通的組合模型,將其所取得的精度與Stacking模型的作對(duì)比。實(shí)驗(yàn)使用Precision來(lái)衡量模型的精度,其計(jì)算式如式(3)所示。其中:TP為真實(shí)值與預(yù)測(cè)值相同的個(gè)數(shù),F(xiàn)P為預(yù)測(cè)錯(cuò)誤個(gè)數(shù)。表8為各模型在測(cè)試集上的預(yù)測(cè)精度對(duì)比。 (3) 表8 各類模型的Precision值(%) 從表8看出,Stacking集成學(xué)習(xí)模型相對(duì)單一模型精度最高提升了14百分點(diǎn),雖然組合模型一定程度上提升了預(yù)測(cè)的精準(zhǔn)性,但相比單一模型的最高精度,其只提升了1百分點(diǎn)。而Stacking集成學(xué)習(xí)相對(duì)提升了7百分點(diǎn)。當(dāng)顧客數(shù)量龐大時(shí),性能提升帶來(lái)的價(jià)值較為客觀。這也證明了Stacking模型在客戶偏好類別預(yù)測(cè)中的有效性。 本次研究旨在通過數(shù)據(jù)挖掘的方式從購(gòu)買數(shù)據(jù)中預(yù)測(cè)出客戶的消費(fèi)偏好以及與該偏好對(duì)應(yīng)的商品特性,并能夠在新用戶在第一次產(chǎn)生交易記錄時(shí)預(yù)測(cè)出其所屬類別。跟其他文獻(xiàn)研究不一樣的是,本文不僅對(duì)數(shù)值型數(shù)據(jù)進(jìn)行了分析與挖掘,而且還對(duì)文本數(shù)據(jù)進(jìn)行挖掘。本文提出使用了Stacking集成學(xué)習(xí)方法來(lái)預(yù)測(cè)客戶所屬類別。實(shí)證結(jié)果表明,結(jié)合K-means與PCA基于購(gòu)買數(shù)據(jù)正確地生成了5類商品聚類簇與11類客戶聚類簇;相比于單一模型,Stacking集成學(xué)習(xí)方法在測(cè)試集上取得了更高的預(yù)測(cè)精度,以81.37%的準(zhǔn)確率預(yù)測(cè)出了客戶的偏好類別,能夠?qū)芾碚咴诳蛻艄芾砼c營(yíng)銷計(jì)劃制定內(nèi)容上提供決策支持。然而本次研究需要分析人員具有較高的建模能力,而且模型未能部署在運(yùn)營(yíng)系統(tǒng)中。未來(lái)還將繼續(xù)研究可部署在企業(yè)運(yùn)營(yíng)信息系統(tǒng)中的自動(dòng)數(shù)據(jù)挖掘方法,其勢(shì)必能夠幫助企業(yè)在大數(shù)據(jù)時(shí)代取得比競(jìng)爭(zhēng)對(duì)手更大的市場(chǎng)。2.3 Stacking集成學(xué)習(xí)方法
3 問題描述及實(shí)驗(yàn)方案
3.1 問題描述
3.2 實(shí)驗(yàn)流程
4 結(jié) 語(yǔ)