?

改進EasyEnsemble的軟投票策略下的用戶購買預測方法

2022-07-29 06:22進,張
計算機與現代化 2022年7期
關鍵詞:特征選擇分類器樣本

楊 進,張 晨

(上海理工大學理學院,上海 200093)

0 引 言

用戶的購買行為預測一直是零售行業的重要課題[1-3],伴隨著大數據時代的到來,人們生活、行為和思考方式發生了變化,同時也提供了大量的數據用于挖掘分析。網民們在電商平臺上購買商品,往往伴隨著瀏覽、加購物車和收藏的行為,因此電子商務平臺儲存了大量的用戶購物歷史數據,分析這些數據可以更好地預測他們的購物習慣、偏好和意圖。本文主要研究消費者網上購買行為的預測,進而網站能夠根據用戶的喜好推薦用戶感興趣的產品,從而改善用戶體驗,改善網上購物環境。

對于該問題國內方面,李旭陽等人[4]提出了長短期記憶模型循環神經網絡(Long Short-Term Memory, LSTM)[5]和隨機森林相結合的預測模型,他們從原始數據中分別提取靜態特征和動態特征。靜態特征指用戶和商品本身的屬性特征。動態特征指用戶對商品發生交互行為產生的特征。對這些特征通過LSTM進行特征選擇,再用隨機森林算法做預測。劉瀟蔓[6]先是從原始數據中分別提取用戶特征、商品特征和用戶-商品特征,再通過“滑動時間窗”[7]的方法對歷史數據反復使用使得正負樣本得以均衡,而后用極端隨機樹(Extra-tree)的方法提取特征,最后將邏輯斯特回歸[8]和支持向量機用軟投票(Softvoting)方法相結合后進行預測。周成驥[9]也是通過滑動時間窗的方法來提取新數據,在生成新的特征后,通過求各個特征的皮爾遜相關系數[10]進行特征選擇,再通過裝袋算法(Bootstrap aggregating, Bagging)把多個極限梯度提升算法(Extreme Gradient Boosting, XGBoost)的預測結果結合后進行預測。胡曉麗等人[11]使用“分段下采樣”的方法來平衡樣本數據,在特征工程生成衍生特征后用卷積神經網絡(Convolutional Neural Networks, CNN)[12]進行特征選擇,通過算法LSTM進行預測,實驗結果表明,基于CNN-LSTM的預測模型F1值相比基準模型得到了提高。杜世民[13]主要研究電商的復購行為,詳細分析了用戶的購買行為習慣,分別從用戶和商品2個方面構建關聯特征,最后用軟投票策略將多算法融合后進行預測。

國外方面,Tian等人[14]提供了一種新模型解決Pareto/NBD模型的缺陷,只需要購買行為的頻率和時間就可以預測電子商務中消費者的復購行為。Zuo等人[15]通過收集消費者在超市產生的射頻識別(RFID)數據,用支持向量機(Support Vector Machines, SVM)模型去預測消費者的購買行為[16]。Chang等人[17]通過聚類分析收集忠誠顧客的關鍵特征來定位潛在客戶,通過關聯分析收集忠誠客戶的購買信息來預測潛在客戶對產品的近期興趣。Cho等人[18]提出了一種基于最近一次消費、消費頻率和消費金額的增量加權挖掘方法來進行用戶購買行為預測,并驗證了該算法的有效性。Gupta等人[19]對在線客戶靈活定價,幫助客戶尋找一個合適的價格去購買,并通過機器學習的方法來預測不同價格下的客戶購買決策。

實際情況中,由于購買的數量遠遠小于未購買的數量,造成了樣本的不均衡。對于該問題,本文采用簡單欠采樣方法和改進的EasyEnsemble[20]采樣方法。簡單欠采樣以發生購買行為和未發生購買行為按比例為1∶1進行采樣,改進的EasyEnsemble采樣方法按發生購買行為和未發生購買行為的采樣比這種接近原始的數據進行采樣。本文通過阿里巴巴天池大賽[21]所提供的數據經過數據處理后做特征工程,生成新的衍生特征,再通過互信息的方法進行特征選擇。本文提出使用改進的EasyEnsemble算法下的軟投票策略方法對數據做預測,然后將預測結果與傳統的機器學習方法的結果相對比,也將簡單欠采樣、EasyEnsemble和改進后的EasyEnsemble這3種方法得出的預測結果作對比,得出結論。

1 特征模型

本文所使用的數據來源于阿里巴巴提供的2014年11月18日到2014年12月18日的10000名用戶在某網站上的用戶與商品的歷史交互記錄。由于無法從這些數據中得到實用的特征數據,所以必須對原始數據進行特征提取。原始數據特征如表1所示。

表1 原始特征

本文根據表1所給出的原始特征來提取新的特征,同樣也把它們分為用戶特征、商品特征和用戶-商品特征3個特征類別。

1.1 用戶特征

用戶特征保留了原始特征User_id,而對于特征User_geohash缺失數據超過了總數據的2/3,并且對數據進行了加密處理,因此數據間不具有相關性,所以將該特征值剔除掉。新加入的用戶特征有用戶的活躍度(userF1),即對某用戶在過去一段時間購買、添加購物車、收藏和瀏覽的次數的加權和。用戶的購買瀏覽轉化率(userF2)、用戶的購買加購物車轉化率(userF3)和用戶的購買收藏轉化率(userF4),是用戶在過去的某段時間購買商品的次數分別與用戶瀏覽、加購物車和收藏次數的比值。用戶購買數量(userF5)、瀏覽數量(userF6)、加購物車數量(userF7)、收藏數量(userF8)分別是用戶在過去一段時間購買商品的次數和、瀏覽商品的次數和、對商品加購物車的次數和和收藏商品的次數和。

1.2 商品特征

商品特征保留了原始特征item_id和item_category,增添了新的商品特征。如商品瀏覽數量(itemF1)是指商品在過去某段時間被瀏覽的數量;商品收藏數量(itemF2)是指商品在過去的某段時間被收藏的數量;商品加購物車數量(itemF3)是指商品在過去某段時間加購物車的數量;商品購買數量(itemF4)是指商品在過去某段時間被購買的數量;商品熱度(itemF5)是指商品在過去的某段時間購買、添加購物車、收藏和瀏覽的次數的加權和;商品種類熱度(itemF6)是指商品不同的種類在過去的某段時間里購買、添加購物車、收藏和瀏覽次數的加權和。

1.3 用戶-商品特征

對于用戶-商品特征,本文將用戶購買商品的時間劃分為日期和具體的時刻,用戶-商品的原始特征無法作為所需要的特征直接使用,但是用戶特征、商品特征以及用戶-商品特征當中的新特征都是從特征Behavior_type和Time中提取出來的。提取出新的用戶-商品特征有用戶-商品熱度(item_userF1)和用戶對商品的購買行為(item_userF2)。用戶商品熱度是某用戶對某商品在過去的某段時間購買、添加購物車、收藏和瀏覽的次數的加權和。用戶對商品的購買行為則是在過去的某段時間用戶是否購買過某商品,購買過則設為1,未購買則設為0。用戶商品瀏覽數量(item_userF3)、用戶商品收藏數量(item_userF4)、用戶商品加購物車數量(item_userF5)、用戶商品購買數量(item_userF6)分別指用戶在過去的一段時間對某個商品瀏覽的次數和、收藏的次數和、加購物車的次數和和購買的次數和。

由于不同的時間刻度對當前的預測影響不同,所以選取了5個時間刻度9天、7天、5天、3天、1天,對不同的時間刻度通過以上方式提取特征,再加上保留的部分原始特征,總共有108維特征。

2 算法介紹

2.1 互信息算法

互信息[22]是一種信息度量方式,可以看成為一種隨機量包含另一種隨機量的信息量。

設2個隨機變量(X,Y)的聯合分布為p(x,y),邊緣分布分別為p(x)、p(y),互信息I(X;Y)是聯合分布p(x,y)與邊緣分布p(x)、p(y)的相對熵,即:

(1)

公式(1)可計算每一個特征和目標值的互信息值,本文通過大小順序排列,選擇互信息值較大的特征。

2.2 XGBoost算法

XGBoost[23]是根據梯度提升實現的半監督學習算法,可以解決分類、回歸等問題。訓練采用的數據集樣本為(xi,yi),其中xi∈Rm,yi∈R。xi表示m維的特征向量,yi表示樣本標簽,模型包含K棵樹,則XGBoost模型的定義如下:

(2)

其中,fK(xi)表示第K棵決策樹,它映射樣本特征,使每個樣本落在該樹的某個葉子節點上,FK(xi)表示K棵決策樹的預測結果的累加和。每個葉子節點均包含一個權重分數,作為落在此葉子節點的樣本在該樹的預測值ω。計算樣本在每棵樹的預測值(即ω)之和,并將其作為樣本的最終預測值。

XGBoost的目標函數定義如下:

(3)

其中,目標函數Obj由2項組成:第一項為損失函數和;Ω(f)項為正則項,傾向于選擇簡單的模型,避免過擬合。正則化項的定義如下:

(4)

為找到最優的f(xi)使目標函數最優,對公式中的目標函數XGBoost采用了近似的方法。對式(3)改寫為:

(5)

XGBoost引入泰勒公式近似和簡化目標函數。取二階泰勒公式的定義如下:

(6)

(7)

式(7)中,gi為損失函數的一階梯度統計;hi為二階梯度統計。gi、hi計算公式分別如下:

(8)

(9)

(10)

2.3 隨機森林

隨機森林[24]是一種集成學習方法,該方法結合Bagging[25]集成學習理論和隨機子空間方法,將多個決策樹作為基分類器,以一定策略選取部分屬性和數據分別建樹;在預測階段根據森林中各棵樹的預測結果進行投票表決,最終表決結果為隨機森林預測結果。

2.4 軟投票策略

軟投票[26]也稱加權平均概率投票,是使用輸出類概率分類的投票法,其通過輸入權重,得到每個類概率的加權平均值,并選擇值較大的那一類。

2.5 EasyEnsemble算法

EasyEnsemble[27]算法主要處理類別不平衡問題,使樣本數據能得到充分利用。

算法流程主要描述如下:

輸入:所有大類樣本數據N;所有小類樣本P;從N中采樣的子集數量m。

輸出:集成模型H(x)。

1)fork=1:m

2)從N中隨機采樣子集Ni,且滿足|Ni|=|P|。

3)將小類樣本集合P和大類樣本子集Ni組合成一個均衡的訓練樣本子集Ni∪P。

4)在訓練樣本子集Ni∪P上訓練分類器:

(11)

其中,hk,j(x)是Hk的第j個弱分類器,αk,j為hk,j(x)所對應的權重,θk為集成的閾值。

5)end for

6)集成模型為:

(12)

3 模型構建

本文模型主要分為3個步驟:1)產生訓練樣本子集;2)訓練基分類器;3)基分類器融合。

3.1 產生訓練樣本子集

先將數據集分為購買和未購買2個大類,再從這2類數據中進行隨機抽樣,使抽取的測試集數據中購買和未購買這2類數據比例接近數據集中購買與未購買的數量比,再對抽取的數據進行特征提取,得到訓練樣本集。

3.2 訓練基分類器

隨機森林(RF)是機器學習中常用的解決分類問題算法之一,是一個包含多個決策樹的分類器。

XGBoost是基于提升樹模型設計的,還支持二階導數運算和并行計算,可以利用正則項控制模型復雜度,準確率高。

本文選擇XGBoost和隨機森林作為基分類器,用改進的EasyEnsemble算法來解決類別不平衡的問題。為了方便調節參數,用一般網絡搜索和貝葉斯方法調參,都會花費大量時間,本文通過逐步調節各個參數,根據F1值的大小來選取較優的參數。

3.3 基分類器的集成

通過前2步的工作,可以得到m個經由不同的訓練集進行訓練的以軟投票策略融合XGBoost和RF的基分類器。運用EasyEnsemble的方法將這些基分類器通過公式(12)聯合起來做預測。

給定樣本x=(x1,x2,…,xn),xi∈Rm,集成模型有m個基分類器h1(x),h2(x),…,hm(x),則對于樣本x,其集成輸出的結果為:

(13)

3.4 本文算法描述

輸入:未購買行為樣本N和發生購買行為樣本集P,且使得樣本集N與P的比值關系滿足數據集中未購買行為和發生購買行為的數據比;基分類器的個數m;

輸出:購買行為預測結果H(x)。

1)對樣本集N中的數據進行排序,按照順序不重復地均勻劃分為m個子樣本集Ni(i=1,2,…,m);

2)將樣本集Ni分別與樣本集P組合成m個訓練集train_datai(i=1,2,…,m);

3)令hi=Softvoting(RF,XGBoost)(i=1,2,…,m),對測試集test_data預測得到m個結果;

4)將得到的m個結果hi(x)代入式(13),得到最終的二分類預測結果。

3.5 本文算法優勢

在處理樣本類別不平衡問題上,本文采用改進的EasyEnsemble的采樣方法。傳統的EasyEnsemble方法從大類樣本隨機選取和小類樣本相同的數據,會導致樣本數據不能夠全面地利用大類樣本數據。相比傳統的EasyEnsemble方法,改進后的EasyEnsemble方法將反例均勻劃分成若干個集合分別與正例一起供不同的分類算法學習,這樣不僅可以充分利用樣本數據,又可以借鑒Bagging的思想來降低算法預測結果的偏差。通過軟投票的方法將XGBoost和隨機森林進行結合后做預測,降低了單一算法預測產生的概率偏差,可以使一些預測概率接近0.5的數據得到正確預測,從而優化預測效果。

4 參數優化

4.1 XGBoost調優

max_depth、min_child_weight和colsample_bytree是XGBoost的3個重要參數。max_depth為決策樹的最大深度,取值范圍為1~32,其F1曲線如圖1所示。min_child_weight表示葉節點的最小樣本權重,取值范圍為1~6,其F1曲線如圖2所示。colsample_bytree表示樣本特征采樣比,取值范圍為0.5~1,其F1曲線如圖3所示。

圖1 在XGBoost中關于max_depth的F1曲線

圖2 在XGBoost中關于min_weight_child的F1曲線

圖3 在XGBoost中關于colsample_bytree的F1曲線

由圖1~圖3可知,本文實驗得到的XGBoostt算法的最優參數選擇如下:max_depth為10,min_child_weight為3,colsample_bytree為0.74。

4.2 隨機森林調優

n_estimators、max_depth、min_child_leaf是隨機森林的3個重要參數。n_estimators是決策樹的數量,取值范圍為10~200,其F1曲線如圖4所示。max_depth為決策樹的最大深度,取值范圍為1~40,其F1曲線如圖5所示。min_child_leaf表示最小的葉節點樣本數,取值范圍為1~50,其F1曲線如圖6所示。

圖4 在隨機森林中關于n_estimators的F1曲線

圖5 在隨機森林中關于max_depth的F1曲線

圖6 在隨機森林中關于min_samples_leaf的F1曲線

由圖4~圖6可知,本文實驗得出的隨機森林算法的最優參數選擇如下:n_estimators為70,max_depth為15,min_samples_leaf為12。

5 實驗及結果分析

5.1 實驗數據集

本文實驗數據來源于阿里巴巴天池大賽提供的2014年11月18日到2014年12月18日移動電商平臺數據集,以11月中的27日、28日和29日用戶對商品的交互行為實驗數據,其中行為信息有瀏覽、收藏、加購物車、購買4種方式。

5.2 數據預處理

對于提供的數據,先將重復數據去掉,再對數據進行特征提取。對于生成的大量空數據,根據實驗數據的特點來進行填充,提取購買瀏覽轉化率、購買收藏轉化率、購買加購物車轉化率的特征時,瀏覽、收藏、加購物車的次數為0,則特征為空值的意義是接近于無窮大,那么選擇用相對較大的數據進行填充。特征工程結束后,對數據進行歸一化處理,用互信息的方法對數據進行特征選擇,選擇了互信息值較大的58個特征。

5.3 評價指標

本文采用精確率P、召回率R和F1值這3個指標來對模型的性能進行評估。其中,將預測類別組合化為真正例(TP)、真負例(FP)、假正例(TN)、假負例(FN),3個指標的計算公式為:

5.4 實驗設計

為了驗證本文提出的預測模型及算法的有效性,實驗使用上述的數據集和評價標準,與當前熱門的機器學習模型進行縱向對比,其中包括邏輯回歸模型(LR)、支持向量機模型(SVM)、隨機森林模型(RF)、梯度提升樹模型(GBDT)和極限梯度提升模型(XGBoost)。再對數據集進行不同采樣方法的橫向對比,其中包括簡單欠采樣、EasyEnsemble和改進后的EasyEnsemble這3種采樣方法。最后對特征選擇前和特征選擇后的數據結果進行對比。

5.5 實驗結果

以精確率P、召回率R和F1值為評價指標,與當前熱門的機器學習算法進行縱向對比,與不同的采樣方法進行橫向對比,特征選擇前的對比見表2,特征選擇后的對比見表3。

表2 特征選擇前的不同算法對比

表3 特征選擇后的不同算法對比

1)所有對比實驗中,本文改進的EasyEnsemble的軟投票策略模型的P值和F1值最高,說明對用戶購買行為預測效果最好。

2)2種關于EasyEnsemble采樣方法都比簡單欠采樣方法預測結果更好,說明平衡樣本數據對于模型的訓練十分有必要。

3)進行特征選擇后的預測結果不僅沒有低于特征選擇前的預測結果,甚至還略優于特征選擇前的預測結果,說明特征選擇不僅能夠減少計算量,還能減少一些帶有噪聲的數據。

4)本文算法的分類效果比其它的模型要優秀很多,主要是因為改進的EasyEnsemble的采樣方法能夠使全局數據參與模型訓練,而且也降低了模型的偏差和方差。使用本文的方法,使P值和R值更加均衡,從而提高F1值。

5.6 特征有效性實驗

關于各個特征在商品購買預測的重要性,可以在刪去某些特征后,通過訓練分類器得到F1值來判斷,F1值越小,則刪去的特征重要性越強。本文將分別對用戶特征、商品特征和刪除用戶-商品特征作對比,如表4所示。再分別刪除關于不同時間形成的特征作對比,如表5所示。

表4 不同屬性特征對預測結果的影響

由表4得知,刪除用戶特征、商品特征或者用戶-商品特征,其F1值均有下降,說明這些特征對于商品銷售預測均有意義。從這3種特征的比較中,發現去除用戶特征后,F1值較去除另外2種特征有明顯下降,說明在用戶購買預測中,用戶特征發揮著更重要的作用。

表5 不同時間構造的特征對預測結果的影響

由表5得知,刪除由時間刻度9天生成的特征對預測值的影響最大,F1值的下降也更為明顯,說明在給用戶推薦商品時,9天以內的銷售記錄發揮很重要的作用,也更能顯示用戶網上購物的傾向程度。

6 結束語

本文提出了一種改進的EasyEnsemble算法的軟投票策略下用戶購買預測方法。通過分析阿里巴巴天池大賽所提供的數據,從用戶、商品和用戶-商品方面提取了108個特征。使用互信息的方法對數據進行特征選擇,一方面降低了計算量,另一方面消除了部分數據噪聲。在處理類別不平衡問題方面,使用了改進的EasyEnsemble算法,與簡單采樣法和傳統EasyEnsemble算法相比,它利用了集成學習機制,將反例均勻劃分成與正例數量相同的若干組數據,用分類算法對每組數據進行訓練,這樣就可以將全局數據進行充分利用。用軟投票的方法將XGBoost和隨機森林結合起來進行訓練,再作為一個分類器做預測。用改進的EasyEnsemble算法可以把Bagging和Boosting方法結合起來,降低偏差和方差。通過用軟投票的方法將XGBoost和隨機森林進行融合的方法與單一的算法相比,可以更好地判斷一些“似是而非”的數據,從而提高了F1值。在與熱門的機器學習算法進行對比實驗后,本文提出方法具有更高的F1值,表明本文模型更加有效,也能更好地解決用戶購買預測問題。

猜你喜歡
特征選擇分類器樣本
正交基低冗余無監督特征選擇法
網絡入侵檢測場景下的特征選擇方法對比研究
用樣本估計總體復習點撥
基于樸素Bayes組合的簡易集成分類器①
基于特征選擇的SVM選擇性集成學習方法
規劃·樣本
基于差異性測度的遙感自適應分類器選擇
基于特征聚類集成技術的在線特征選擇
隨機微分方程的樣本Lyapunov二次型估計
Kmeans 應用與特征選擇
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合