本發(fā)明屬于智能信息處理領(lǐng)域,具體涉及一種o2o優(yōu)惠券使用大數(shù)據(jù)預測方法。
背景技術(shù):
隨著移動設(shè)備的完善和普及,移動互聯(lián)網(wǎng)+各行各業(yè)進入了高速發(fā)展階段,其中以o2o(onlinetooffline)消費最為吸引眼球。o2o行業(yè)天然關(guān)聯(lián)數(shù)億消費者,各類app每天記錄了超過百億條用戶行為記錄,因而成為大數(shù)據(jù)科研和商業(yè)化運營的最佳結(jié)合點之一。以優(yōu)惠券盤活老用戶或吸引新客戶進店消費是o2o的一種重要營銷方式。然而隨機投放的優(yōu)惠券對多數(shù)用戶造成無意義的干擾。對商家而言,濫發(fā)的優(yōu)惠券可能降低品牌聲譽,同時難以估算營銷成本。隨著大數(shù)據(jù)時代的到來,如何有效的進行數(shù)據(jù)挖掘,從而產(chǎn)生商業(yè)價值已經(jīng)成為了一種企業(yè)必然趨勢??梢岳脭?shù)據(jù)挖掘、機器學習等技術(shù)對用戶消費行為進行分析,預測用戶優(yōu)惠券使用情況。當前通用的方法為利用有監(jiān)督的分類器對用戶歷史消費數(shù)據(jù)、商家優(yōu)惠券消費情況等信息來建立模型,對用戶領(lǐng)取優(yōu)惠券后是否消費,消費概率等做出預測?,F(xiàn)有方法大多數(shù)未能進行多分類器集成學習或者其集成學習效果不理想,并且部分方法在特征構(gòu)建選擇以及不平衡數(shù)據(jù)方面沒有進行相應(yīng)的處理,導致預測精度并不是很理想,在真實數(shù)據(jù)集的預測中效果不太理想,本發(fā)明針對這些方面所做的工作大大提高了大數(shù)據(jù)在優(yōu)惠券使用預測方面的精度,提高了算法的實用性。
本專利提出了一種o2o優(yōu)惠券使用大數(shù)據(jù)預測方法對用戶的消費行為進行預測,同時本項目還涉及到了用戶歷史消費數(shù)據(jù)集預處理、數(shù)據(jù)打標、特征工程構(gòu)建、特征選擇和不平衡數(shù)據(jù)處理,通過多分類器集成學習來進行用戶優(yōu)惠券使用情況預測;同時,不同算法的結(jié)果著眼點不同,能滿足不同用戶的需求,將眾多的機器學習算法進行合理的加權(quán)組合更能刻畫消費者優(yōu)惠券使用情況的多樣性、準確性,從而進行個性化投放,能有效的提高優(yōu)惠券核銷率,它可以讓具有一定偏好的消費者得到真正的實惠,同時賦予商家更強的營銷能力。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在解決以上現(xiàn)有技術(shù)的問題。提出了一種為商家提供更為高效的優(yōu)惠券發(fā)放方式,讓消費者得到真正的實惠,賦予商家更強的營銷能力的o2o優(yōu)惠券使用大數(shù)據(jù)預測方法。本發(fā)明的技術(shù)方案如下:
一種o2o優(yōu)惠券使用大數(shù)據(jù)預測方法,其包括以下步驟:
101、獲取用戶的歷史消費數(shù)據(jù)集并進行預處理操作;
102、對經(jīng)過預處理后用戶的歷史消費數(shù)據(jù)集進行打標操作,劃分并構(gòu)建訓練集和預測集;
103、對用戶的訓練集的特征群分為三大類別,分別為打標月特征群、消費月特征群、領(lǐng)券消費月特征群;
104、對特征群特征選擇和對數(shù)據(jù)及進行不平衡數(shù)據(jù)的處理;
105、對經(jīng)過特征選擇和不平衡數(shù)據(jù)處理后的數(shù)據(jù)進行多分類器集成學習;
106、建立模型,根據(jù)用戶歷史消費數(shù)據(jù)對用戶的優(yōu)惠券使用情況進行預測,優(yōu)化o2o優(yōu)惠券的投放。
進一步的,所述步驟101對用戶的歷史消費數(shù)據(jù)集的預處理操作,包括以下步驟:
s1011、通過商家平臺獲取用戶歷史消費數(shù)據(jù);
s1012、對用戶歷史消費數(shù)據(jù)中缺失值的填充,在原始數(shù)據(jù)表中,缺失值為字符串‘null’,統(tǒng)一轉(zhuǎn)化為null類型;
s1013、對用戶歷史消費數(shù)據(jù)中的距離信息轉(zhuǎn)換為double類型,日期由字符串轉(zhuǎn)換為datetime類型;
s1014、進行折扣率的轉(zhuǎn)換,將滿減轉(zhuǎn)換為折扣的形式,轉(zhuǎn)換公式為:
進一步的,所述步驟102對用戶的歷史消費數(shù)據(jù)集進行打標,劃分和構(gòu)建訓
練集和預測集,具體為:
s1021、根據(jù)訓練集打標原則對訓練集打標,首先篩選出有領(lǐng)券日期的記錄,然后將15天內(nèi)用券消費的記錄標1,其余標0;
s1022、根據(jù)線上線下數(shù)據(jù)分布一致原則,將原始表中的行為模式分為三類,分別為打標當月純領(lǐng)取優(yōu)惠券行為、前一月消費行為以及前一個半月的領(lǐng)取優(yōu)惠券并消費行為。
進一步的,所述步驟103對于用戶的歷史消費數(shù)據(jù)集訓練集的特征群分為三大類別,分別為打標月特征群、消費月特征群、領(lǐng)券消費月特征群,具體為:
s1031、對數(shù)據(jù)集進行屬性類型劃分工作,將屬性劃分為key類型和value類型,key類型主要用于子特征群特征提取的key和多個子特征群合并時的key,value類型屬性主要用于提取相應(yīng)特征;
s1032、根據(jù)訓練集的構(gòu)建,將特征群分為三大類別,分別為打標月特征群、消費月特征群、領(lǐng)券消費月特征群,三個特征群又根據(jù)每次做key的鍵不同,分為8個子特征群;
s1033、對相關(guān)特征離散化:一是對距離特征離散化,將距離特征作為數(shù)值型特征的同時,也作為標稱型特征,將其離散化為十二個維度,除原數(shù)值相關(guān)統(tǒng)計外,另增加其每個維度下的次數(shù)統(tǒng)計;二是對時間信息的處理;
s1034、在進行特征提取前,分析單個屬性可得到的相關(guān)信息,以便為后續(xù)子特征群提取提供完善的依據(jù);
s1035、按照日期統(tǒng)計訓練集中每天的領(lǐng)券數(shù)和消費數(shù),得到消費行為圖,根據(jù)消費行為圖的波峰波谷及變化趨勢,將是否處于節(jié)假日前幾天作為特征;
s1036、一個用戶當月可能會領(lǐng)取多張不同距離、不同折扣率以及不同日期的優(yōu)惠券,基于這種事實,構(gòu)建8個基于打標月排序的排序特征:該用戶當月領(lǐng)取同一張優(yōu)惠券領(lǐng)取日期的排名、該用戶一天中同一張優(yōu)惠券的領(lǐng)取次數(shù)、該用戶在該商家領(lǐng)取優(yōu)惠券次數(shù)比上該用戶當月中的領(lǐng)取優(yōu)惠券次數(shù)、轉(zhuǎn)換過后的折扣率排名、距離排名、領(lǐng)取日期的排名、滿的排名、減的排名;
s1037、根據(jù)用戶和商家的消費行為,統(tǒng)計各個行為類別下的次數(shù),通過組合得到行為比率特征群,添加該特征群。
進一步的,所述步驟s1038的特征群包括以下特征:每個用戶在每個商家的領(lǐng)券數(shù)占總領(lǐng)券數(shù)比率、每個用戶在每個商家的消費次數(shù)占總消費次數(shù)比率、每個用戶在每個商家的15天內(nèi)用券數(shù)占15天內(nèi)總消費次數(shù)比率、每個用戶用券消費次數(shù)占總消費次數(shù)比率、每個用戶不同距離下消費次數(shù)占比、每個用戶不同折扣率消費占比、節(jié)假日消費占比、節(jié)假日領(lǐng)取優(yōu)惠券占比、每個商家發(fā)行優(yōu)惠券數(shù)目占總優(yōu)惠券數(shù)目比率、每個商家每個優(yōu)惠券發(fā)行數(shù)目占比。
進一步的,所述步驟s104特征選擇和對不平衡數(shù)據(jù)的處理,具體為:
s1041、采用基于特征聚類法進行特征選擇;
s1042、對于數(shù)據(jù)集的類別不平衡分類問題,采用了負樣本欠采樣的策略,采樣率為10:1,保證了正負樣本比為1:1。
進一步的,所述采用基于特征聚類法主要包括以下步驟:初始化兩個空集合,將已有數(shù)據(jù)集的所有屬性放入集合a中,另一個集合b為空,從集合a隨機選取一個子集放入集合b中,然后開始迭代:每輪迭代從集合a選擇一個屬性放入集合b,使得集合b屬性的訓練誤差減小量與集合a屬性的訓練誤差增加量的和最小,當b的訓練誤差與a的訓練誤差差值最小時,停止迭代,此時集合a,b就是分離的兩個視圖,最后在分離出的視圖中利用基于xgboost的特征選擇各選擇出topk個特征進行訓練,k值為特征總維數(shù)的30%。
進一步的,所述步驟s105對進行上述操作后的數(shù)據(jù)集進行訓練與測試,進行多分類器集成學習,得到結(jié)果,最終得到完整處理方案,具體為:
s1501、采用了stacking的策略構(gòu)建了多分類器集成學習;
s1502、選取三個模型進行集成xgboost(extremegradientboosting)、全部特征下的gbdt(gradientboostingdecisiontree))以及700維度特征下的xgb,排序標準為基于優(yōu)惠券id的平均auc,以僅考慮各個分類器輸出結(jié)果的排名情況,分類器學習集成階段使用的策略為同樣基于排序優(yōu)化的rank_avg方法:∑weighti/ranki。
本發(fā)明的優(yōu)點及有益效果如下:
本發(fā)明提出了一種o2o優(yōu)惠券使用大數(shù)據(jù)預測方法對用戶的消費行為進行預測,同時本項目還涉及到了用戶歷史消費數(shù)據(jù)集預處理、數(shù)據(jù)打標、特征工程構(gòu)建、特征選擇和不平衡數(shù)據(jù)處理,通過一系列的步驟和算法得到用戶的消費模型,根據(jù)本專利105,利用多分類器集成學習來進行潛在用戶優(yōu)惠券使用情況預測;同時,不同算法的結(jié)果著眼點不同,能滿足不同用戶的需求,將眾多的機器學習算法進行合理的加權(quán)組合更能刻畫消費者優(yōu)惠券使用情況的多樣性、準確性,從而進行個性化投放,能有效的提高優(yōu)惠券核銷率,它可以讓具有一定偏好的消費者得到真正的實惠,同時賦予商家更強的營銷能力并降低商家的營銷成本。
附圖說明
圖1是本發(fā)明提供優(yōu)選實施例優(yōu)惠券使用預測流程圖;
圖2為本發(fā)明打標原則圖;
圖3為本發(fā)明訓練集和預測集的劃分構(gòu)建方案圖;
圖4為本發(fā)明屬性類型劃分圖;
圖5為本發(fā)明特征視圖分離流程圖;
圖6為本發(fā)明模型集成圖;
圖7為折扣率轉(zhuǎn)換圖;
圖8為單個屬性可提取特征圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、詳細地描述。所描述的實施例僅僅是本發(fā)明的一部分實施例。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
實施例一
為進一步闡述本發(fā)明方案,特以2016年4月1日-2016年6月15日用戶領(lǐng)取優(yōu)惠券消費記錄為訓練集,2016年5月15日-2016年7月31日用戶的領(lǐng)取優(yōu)惠券行為為預測集為例對本技術(shù)方案進行詳盡闡述,參考圖1,圖1為本實施例提供的一種o2o優(yōu)惠券使用大數(shù)據(jù)預測方法流程圖:
步驟1:收集的用戶線下消費和優(yōu)惠券領(lǐng)取行為包括用戶id、商戶id、優(yōu)惠券id(null表示無優(yōu)惠券消費);優(yōu)惠率:x\in[0,1]代表折扣率;x:y表示滿x減y,單位是元;user經(jīng)?;顒拥牡攸c離該商家的最近門店距離是x*500米(如果是連鎖店,則取最近的一家門店),x\in[0,10];null表示無此信息,0表示低于500米,10表示大于5公里;領(lǐng)取優(yōu)惠券日期;消費日期:如果date=null&coupon_id!=null,該記錄表示領(lǐng)取優(yōu)惠券但沒有使用,即負樣本;如果date?。絥ull&coupon_id=null,則表示普通消費日期;如果date?。絥ull、&coupon_id!=null,則表示用優(yōu)惠券消費日期,即正樣本;用戶線上點擊/消費和優(yōu)惠券領(lǐng)取行為等信息。
步驟2:對步驟1中的數(shù)據(jù)集進行數(shù)據(jù)預處理,在原始數(shù)據(jù)表中,缺失值為字符串‘null’,為了便于后續(xù)操作,統(tǒng)一轉(zhuǎn)化為null類型;對用戶歷史消費數(shù)據(jù)中的距離信息轉(zhuǎn)換為double類型,其中“null”轉(zhuǎn)化為null;日期由字符串轉(zhuǎn)換為datetime類型,其中“null”轉(zhuǎn)化為null;進行折扣率的轉(zhuǎn)換,將滿減轉(zhuǎn)換為折扣的形式(通過
步驟3:根據(jù)訓練集打標原則對訓練集打標,具體為首先篩選出有領(lǐng)券日期的記錄,然后將15天內(nèi)用券消費的記錄標1,其余標0具體原則如圖2;根據(jù)訓練集和預測集構(gòu)建的劃分方案,構(gòu)建訓練集和預測集,具體為線上線下數(shù)據(jù)分布一致原則,將原始表中的行為模式分為三類,分別為打標當月純領(lǐng)取優(yōu)惠券行為、前一月消費行為以及前一個半月的領(lǐng)取優(yōu)惠券并消費行為,具體方案如圖3。
步驟4:對數(shù)據(jù)集進行屬性類型劃分工作,將原始屬性劃分為key類型和value類型,key類型主要包括用戶id,商戶id以及優(yōu)惠券id三個屬性,只要用于子特征群特征提取的key和多個子特征群合并時的key,value類型屬性包括距離、優(yōu)惠率以及優(yōu)惠券使用日期4個屬性,主要用于提取相應(yīng)特征,具體劃分如圖4;
步驟5:根據(jù)訓練集的構(gòu)建,將特征群分為三大類別,分別為打標月特征群、消費月特征群、領(lǐng)券消費月特征群,三個特征群又根據(jù)每次做key的鍵不同,分為8個子特征群,特征群的合并原則如圖3;
步驟6:對相關(guān)特征離散化:一是對距離特征離散化,將距離特征作為數(shù)值型特征的同時,也作為標稱型特征,將其離散化為12個維度(原始數(shù)據(jù)中對距離存在12種表示,即0-10,null),除原數(shù)值相關(guān)統(tǒng)計外,另增加其每個維度下的次數(shù)統(tǒng)計,以用戶子特征群為例進行說明,統(tǒng)計該用戶在每種距離下領(lǐng)取優(yōu)惠券次數(shù)即可得到該用戶的領(lǐng)取優(yōu)惠券距離偏好;二是對時間信息的處理,根據(jù)用戶在2016.1.1到2016.6.31的消費記錄(時間特征有date_pay、date_received),分析上中下旬用戶領(lǐng)券和消費的頻率,具體為,在獨熱編碼的基礎(chǔ)上,先特征離散,構(gòu)建特征:“是否上旬”、“是否中旬”、“是否下旬”,其取值為0或1,相當于給時間信息做了獨熱編碼,同時,將日期離散化為星期幾、近7天、近14天和近21天10個維度,分別統(tǒng)計每個子特征群在這10個維度下的次數(shù)。以用戶商家領(lǐng)取優(yōu)惠券特征子群為例子進行說明,以user_id和merchant_id為key,統(tǒng)計近7天的date_received數(shù)目其業(yè)務(wù)含義為用戶最近是否領(lǐng)取了該商家的優(yōu)惠券;
步驟7:在進行特征提取前,分析單個屬性可得到的相關(guān)信息,以便為后續(xù)子特征群提取提供完善的依據(jù),在該實施例中,單個屬性可提取特征如圖8;
步驟8:根據(jù)每次的key值屬性的不同,將每個特征群進一步劃分為8個大子特征群,具體特征如下:
步驟9:按照日期統(tǒng)計訓練集中每天的領(lǐng)券數(shù)和消費數(shù),可以得到消費行為圖,根據(jù)消費行為圖的波峰波谷及變化趨勢,將是否處于節(jié)假日前幾天作為特征;
步驟10:一個用戶當月可能會領(lǐng)取多張不同距離、不同折扣率以及不同日期的優(yōu)惠券,基于這種事實,構(gòu)建8個基于打標月排序的排序特征,具體特征如下:
db_user_cid_date_received_rank:該用戶當月領(lǐng)取同一張優(yōu)惠券領(lǐng)取日期的排名
db_user_cid_oneday_cishu:該用戶一天中同一張券的領(lǐng)取次數(shù)
db_user_everycid_rate:該用戶在該商家領(lǐng)取優(yōu)惠券次數(shù)比上該用戶當月中的領(lǐng)取優(yōu)惠券次數(shù)
db_user_rate_rank:轉(zhuǎn)換過后的折扣率排名
db_user_distance_rank:距離排名(缺失值填0)
db_user_date_received_rank:領(lǐng)取日期的排名
db_user_man_rank:滿的排名
db_user_jian_rank:減的排名
步驟11:根據(jù)用戶和商家的消費行為,統(tǒng)計各個行為類別下的次數(shù),通過組合得到行為比率特征群,添加該特征群,部分特征如下:每個用戶在每個商家的領(lǐng)券數(shù)占總領(lǐng)券數(shù)比率、每個用戶在每個商家的消費次數(shù)占總消費次數(shù)比率、每個用戶在每個商家的15天內(nèi)用券數(shù)占15天內(nèi)總消費次數(shù)比率、每個用戶用券消費次數(shù)占總消費次數(shù)比率、每個用戶不同距離下消費次數(shù)占比、每個用戶不同折扣率消費占比、節(jié)假日消費占比、節(jié)假日領(lǐng)取優(yōu)惠券占比、每個商家發(fā)行優(yōu)惠券數(shù)目占總優(yōu)惠券數(shù)目比率、每個商家每個優(yōu)惠券發(fā)行數(shù)目占比。
步驟12:在特征工程部分,所構(gòu)建的特征維度較大(899維),這么多維特征一方面可能導致維數(shù)災難,另一方面很容易導致過擬合,需要做降維處理,本算法采用基于特征聚類的特征選擇方案,具體為:初始化兩個空集合,將已有數(shù)據(jù)集的所有屬性放入其中集合a中,另一個集合b為空。從集合a隨機選取一個子集放入集合b中。然后開始迭代:每輪迭代從集合a選擇一個屬性放入集合b,使得集合b屬性的訓練誤差減小量與集合a屬性的訓練誤差增加量的和最小。當b的訓練誤差與a的訓練誤差差值最小時,停止迭代。此時集合a,b就是分離的兩個視圖。最后在分離出的視圖中利用基于xgboost的特征選擇各選擇出top270個特征進行訓練,特征視圖分離流程圖如圖5所示;
步驟13:對于數(shù)據(jù)集的類別不平衡分類問題,由于此處數(shù)據(jù)集足夠大,所以采用了負樣本欠采樣的策略,采樣率為10:1,保證了正負樣本比為1:1。
步驟14:在完成特征數(shù)據(jù)集構(gòu)建與打標,訓練集和測試集劃分以及特征工程構(gòu)建。所述步驟s105對進行上述操作后的數(shù)據(jù)集進行訓練與測試,進行多分類器集成學習,得到結(jié)果,最終得到完整處理方案,具體為:由于單個分類器的結(jié)果具有單一性,當多個分類器集成學習后能有效的提升分類器的精確度、降低過擬合。在此處本專利采用了stacking的策略構(gòu)建了多分類器集成學習;
本專利選取三個模型進行集成(全部特征下的xgboost(extremegradientboosting)、全部特征下的gbdt(gradientboostingdecisiontree)以及700維度特征下的xgb(extremegradientboosting)),由于排序標準為基于優(yōu)惠券id的平均auc,本質(zhì)為排序優(yōu)化問題,由于不同分類器輸出的結(jié)果量綱不同,所以僅考慮各個分類器輸出結(jié)果的排名情況,分類器學習集成階段使用的策略為同樣基于排序優(yōu)化的rank_avg方法:∑weighti/ranki。具體的分類器學習集成方案如圖6。
步驟15:選取三個模型進行集成(全部特征下的xgb、全部特征下的gbdt以及700維度特征下的xgb),由于排序標準為基于優(yōu)惠券id的平均auc,本質(zhì)為排序優(yōu)化問題,所以在分類器集成階段使用的策略為同樣基于排序優(yōu)化的rank_avg方法:∑weighti/ranki,具體的模型融合方案如圖6。
步驟16:通過已建立模型,根據(jù)用戶歷史消費數(shù)據(jù)對用戶的優(yōu)惠券使用情況進行預測,商家可以根據(jù)用戶的優(yōu)惠券使用情況,優(yōu)化o2o優(yōu)惠券的投放,增強營銷能力,增加單位投入產(chǎn)生的盈利。
以上這些實施例應(yīng)理解為僅用于說明本發(fā)明而不用于限制本發(fā)明的保護范圍。在閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等效變化和修飾同樣落入本發(fā)明權(quán)利要求所限定的范圍。