本發(fā)明涉及數(shù)據(jù)清洗方法、異常數(shù)據(jù)處理方法、用戶換機(jī)打標(biāo)方法、特征工程構(gòu)建方法,以及采用多模型融合進(jìn)行換機(jī)用戶預(yù)測(cè)的技術(shù)。
背景技術(shù):
運(yùn)營(yíng)商幾乎每分每秒都在產(chǎn)生著海量業(yè)務(wù)數(shù)據(jù),如何將這些數(shù)據(jù)利用起來(lái)并產(chǎn)生價(jià)值,這就成了運(yùn)營(yíng)商的一個(gè)迫切需求。然而隨機(jī)投放的推送對(duì)多數(shù)用戶造成無(wú)意義的干擾。對(duì)商家而言,濫發(fā)的推送可能降低品牌聲譽(yù),同時(shí)難以估算營(yíng)銷成本?;跀?shù)據(jù)挖掘技術(shù)和手段,通過(guò)運(yùn)營(yíng)商提供的精確的用戶消費(fèi)行為和歷史換機(jī)軌跡刻畫(huà)用戶畫(huà)像、了解用戶需求,充分利用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)為運(yùn)營(yíng)商的業(yè)務(wù)開(kāi)展提供有力支撐。
利用數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等技術(shù)對(duì)用戶行為進(jìn)行分析,發(fā)現(xiàn)潛在的換機(jī)用戶。當(dāng)前通用的方法為利用有監(jiān)督的分類器對(duì)用戶歷史換機(jī)數(shù)據(jù)、用戶app使用情況等信息來(lái)建立模型,對(duì)用戶是否換機(jī),換機(jī)類型等做出預(yù)測(cè)。
隨著大數(shù)據(jù)時(shí)代的到來(lái),如何有效的進(jìn)行數(shù)據(jù)挖掘,從而產(chǎn)生商業(yè)價(jià)值已經(jīng)成為了一種企業(yè)必然趨勢(shì)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提出了一種基于多模型融合的分類算法對(duì)用戶換機(jī)行為進(jìn)行預(yù)測(cè),同時(shí)本發(fā)明還涉及到了用戶歷史行為分析、樣本標(biāo)注意、特征工程構(gòu)建、特征選擇和特征變換等領(lǐng)域的技術(shù)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于多模型融合的潛在換機(jī)用戶發(fā)現(xiàn)方法,包括以下步驟:
(1)數(shù)據(jù)采集和預(yù)處理,收集用戶的基本信息和用戶歷史換機(jī)軌跡信息,刪除異常信息,處理缺失信息,對(duì)數(shù)值型信息進(jìn)行歸一化處理;利用時(shí)間窗口劃分訓(xùn)練集和測(cè)試集。用戶的基本信息和用戶歷史換機(jī)軌跡信息從運(yùn)營(yíng)商的用戶最近1年消費(fèi)信息中獲取。
(2)特征構(gòu)建,根據(jù)步驟(1)訓(xùn)練集和測(cè)試集中的數(shù)據(jù)提取出基本信息,以及對(duì)基本信息進(jìn)行擴(kuò)展得到原始特征;對(duì)原始特征分別進(jìn)行排序得到排序特征;用皮爾遜相關(guān)系數(shù)衡量原始特征和目標(biāo)變量之間的相關(guān)性,構(gòu)建多項(xiàng)式特征;將訓(xùn)練集和測(cè)試集中的無(wú)關(guān)聯(lián)屬性特征作為離散特征。
(3)模型構(gòu)建及模型融合,分別構(gòu)建樹(shù)型模型、超平面模型和惰性模型中的分類器Xgboost、LIBSVM和KNN,用訓(xùn)練集中的數(shù)據(jù)分別對(duì)分類器Xgboost,LIBSVM和KNN進(jìn)行訓(xùn)練,再用訓(xùn)練后的Xgboost、LIBSVM和KNN分別訓(xùn)練測(cè)試集。
(4)用步驟(3)所述Xgboost、LIBSVM和KNN分類器分別對(duì)未知樣本進(jìn)行預(yù)測(cè),得到的多個(gè)預(yù)測(cè)結(jié)果進(jìn)行加權(quán)投票為最終的預(yù)測(cè)結(jié)果。
上述步驟(1)中還包括根據(jù)用戶歷史換機(jī)軌跡信息對(duì)用戶打標(biāo)簽,具體為:過(guò)濾換機(jī)時(shí)間小于20天的用戶歷史換機(jī)軌跡;統(tǒng)計(jì)用戶在整個(gè)考察時(shí)間窗內(nèi)使用的手機(jī)機(jī)型集合(PA)和考察時(shí)間窗之前使用的手機(jī)機(jī)型集合(PB),若集合PA和PB存在差異,那么用1標(biāo)注該用戶為換機(jī)用戶,否則用0標(biāo)注該用戶不是換機(jī)用戶。
上述步驟(1)中異常信息是指用戶的特征缺失率大于50%,則刪除。處理缺失信息包括,當(dāng)用戶在某一個(gè)時(shí)間段內(nèi)使用的手機(jī)缺失,按照時(shí)間點(diǎn)向后滾動(dòng),即用用戶的下個(gè)時(shí)間段的手機(jī)參數(shù)填充該缺失,若用戶的下個(gè)時(shí)間段內(nèi)手機(jī)也存在缺失,那么向前滾動(dòng),即用用戶的上個(gè)時(shí)間段的手機(jī)參數(shù)填充該缺失。
所述Xgboost分類器的構(gòu)建方法如下:分別對(duì)原始特征、排序特征、離散特征、多項(xiàng)式特征進(jìn)行特征選擇,按照特征重要性排序,在原始特征中選取前N1個(gè)特征,在排序特征中選取前N2個(gè)特征,在離散特征中選取前N3個(gè)特征,在多項(xiàng)式特征中選取前N4個(gè)特征(上述參數(shù)N1,N2,N3,N4隨機(jī)取值,但N1,N2,N3,N4分別小于原始特征個(gè)數(shù)、排序特征個(gè)數(shù)、離散特征個(gè)數(shù)、多項(xiàng)式特征個(gè)數(shù)),Xgboost模型參數(shù)在±0.5圍內(nèi)(以初始化參數(shù)值為參考,上下0.5以內(nèi)浮動(dòng))隨機(jī)擾動(dòng),生成多個(gè)不同的Xgboost模型,所有的模型投票得到Xgboost模型。
本發(fā)明利用多模型融合方法來(lái)進(jìn)行潛在換機(jī)用戶挖掘,客服了傳統(tǒng)的人工識(shí)別換機(jī)用戶的局限性;同時(shí),不同算法的結(jié)果著眼點(diǎn)不同,能滿足不同用戶的需求,將眾多的機(jī)器學(xué)習(xí)算法進(jìn)行合理地組合更能刻畫(huà)用戶換機(jī)的多樣性、準(zhǔn)確性。通過(guò)用戶歷史數(shù)據(jù)進(jìn)行訓(xùn)練,最后在數(shù)據(jù)集上進(jìn)行預(yù)測(cè),從而發(fā)現(xiàn)即將換機(jī)的高價(jià)值用戶,并精確地為用戶推送手機(jī)機(jī)型。本發(fā)明從實(shí)際問(wèn)題手機(jī)終端精準(zhǔn)營(yíng)銷出發(fā),將數(shù)據(jù)挖掘技術(shù)應(yīng)用到潛在手機(jī)終端更換的預(yù)測(cè)研究中,研究工作對(duì)決策及市場(chǎng)人員開(kāi)展工作有重要的作用。
附圖說(shuō)明
圖1為潛在換機(jī)用戶發(fā)現(xiàn)的流程圖;
圖2為本發(fā)明構(gòu)建Xgboost模型的流程圖;
圖3為本發(fā)明構(gòu)建KNN模型的流程圖;
圖4為本發(fā)明模型融合的流程圖;
圖5為本發(fā)明界定考察時(shí)間段內(nèi)使用的手機(jī)機(jī)型集合PA的時(shí)間軸圖。
具體實(shí)施方式
為進(jìn)一步闡述本發(fā)明方案,特以貴州移動(dòng)2011年至2016年用戶數(shù)據(jù)為例對(duì)本技術(shù)方案進(jìn)行詳盡闡述:
1.數(shù)據(jù)采集
通過(guò)運(yùn)行商獲取用戶最近1年的消費(fèi)信息以及用戶的歷史機(jī)型的各種參數(shù),包括處理器、內(nèi)存、像素以及是否支持導(dǎo)航等,收集到用戶的基本信息和用戶歷史換機(jī)軌跡信息。
2.數(shù)據(jù)預(yù)處理
包括用戶基本信息和用戶歷史換機(jī)軌跡信息的處理,根據(jù)兩個(gè)數(shù)據(jù)表的描述以及物理理解進(jìn)行如下處理:
由于用戶基本信息中某些特征存在缺失現(xiàn)象,針對(duì)數(shù)值型特征和枚舉型特征分別做不同的處理,flow、mou、apru等數(shù)值型特征,如果存在缺失現(xiàn)象那么就用當(dāng)前的中位數(shù)補(bǔ)充;性別等枚舉型特征用區(qū)別于數(shù)據(jù)集中現(xiàn)有的枚舉值填充,如“未知”。
對(duì)信息中的數(shù)值型特征進(jìn)行最大最小歸一化處理。
3.數(shù)據(jù)打標(biāo)
本發(fā)明中規(guī)定換機(jī)標(biāo)準(zhǔn):考察時(shí)間段內(nèi)出現(xiàn)的手機(jī)型號(hào)中,至少有一款在考察時(shí)間段之前沒(méi)有出現(xiàn)過(guò)。軌跡數(shù)據(jù)中如果型號(hào)數(shù)據(jù)缺失,則取該用戶按時(shí)間后一記錄的型號(hào)補(bǔ)充,如果缺失記錄為最后條記錄,則按時(shí)間前一記錄的型號(hào)補(bǔ)充,如果為唯一記錄,在填充NULL型號(hào)。結(jié)合實(shí)際案例闡述如下:
對(duì)用戶打標(biāo)簽,首先過(guò)濾換機(jī)時(shí)間小于20天的用戶歷史換機(jī)軌跡的記錄,隨后統(tǒng)計(jì)用戶在整個(gè)考察時(shí)間窗內(nèi)使用的手機(jī)機(jī)型集合PA和考察時(shí)間窗之前使用的手機(jī)機(jī)型集合PB,若集合PA減去PB不為空,那么用1標(biāo)注該用戶為換機(jī)用戶,否則用0標(biāo)注該用戶不是換機(jī)用戶。
4.訓(xùn)練集和測(cè)試集劃分
訓(xùn)練集時(shí)間點(diǎn):2015年9月30日;
測(cè)試集時(shí)間點(diǎn):2015年12月31日;
本發(fā)明采用基于時(shí)間滑動(dòng)窗口的方法劃分?jǐn)?shù)據(jù)集,在不考慮突變和周期規(guī)律的情況下,該時(shí)間序列是具有短期自相關(guān)性的,即相鄰的時(shí)間序列值具有連續(xù)性。很顯然要預(yù)測(cè)2016年1月1日-2016年3月31日用戶是否換機(jī),離待預(yù)測(cè)時(shí)間越近的幾個(gè)月的信息與待預(yù)測(cè)值相關(guān)性較大,從已知的2015年12月31日開(kāi)始倒推5個(gè)月提取用戶的消費(fèi)數(shù)據(jù)作為主要特征,訓(xùn)練集的標(biāo)注和特征提取和測(cè)試集保持相同。以考察用戶在2015年10月1日-2015年12月31是否換機(jī)為例,圖5描述了在考察時(shí)間窗內(nèi)使用的手機(jī)的開(kāi)始使用時(shí)間與結(jié)束時(shí)間和考察時(shí)間窗的起始點(diǎn)之間的關(guān)系,①手機(jī)被使用的開(kāi)始時(shí)間在考察時(shí)間窗的開(kāi)始時(shí)間點(diǎn)之前,手機(jī)被使用的結(jié)束時(shí)間在考察時(shí)間窗的結(jié)束時(shí)間點(diǎn)之前;②手機(jī)被使用的開(kāi)始時(shí)間和結(jié)束時(shí)間在考察時(shí)間窗之內(nèi);③手機(jī)被使用的開(kāi)始時(shí)間在考察時(shí)間窗的開(kāi)始時(shí)間之后,手機(jī)被使用的結(jié)束時(shí)間在考察時(shí)間窗的結(jié)束時(shí)間點(diǎn)之后;④手機(jī)被使用的開(kāi)始時(shí)間在考察時(shí)間窗的開(kāi)始時(shí)間點(diǎn)之前,手機(jī)被使用的結(jié)束時(shí)間在考察時(shí)間窗的結(jié)束點(diǎn)之后。
5.特征工程構(gòu)建
前置條件:數(shù)據(jù)打標(biāo)結(jié)果,即2015年10月1日-2015年12月31日換機(jī)的用戶為訓(xùn)練集,2016年1月1日-2016年3月31日換機(jī)的用戶為測(cè)試集,用戶用ID進(jìn)行標(biāo)識(shí)。
基礎(chǔ)特征
用戶基本消費(fèi)數(shù)據(jù)中,樣本(用戶)在換機(jī)時(shí)間段前5個(gè)月的流量、5個(gè)月的通話時(shí)長(zhǎng)、5個(gè)月的arpu值,一共有15個(gè)特征,因此,對(duì)于訓(xùn)練集和測(cè)試集的每一個(gè)樣本,都可以構(gòu)建一個(gè)15維的向量(加上標(biāo)簽是16維,這一維是目標(biāo)列)。
基礎(chǔ)特征擴(kuò)展
①對(duì)基礎(chǔ)特征中的每個(gè)特征,分別構(gòu)建排序特征,并進(jìn)行歸一化,特征增加到15+15=30個(gè);
②添加相鄰月份流量、通話時(shí)長(zhǎng)、arpu值的差值特征,特征增加到30+12=42個(gè)。5個(gè)月份的流量有4個(gè)相鄰月份的流量差,5個(gè)月份的通話時(shí)長(zhǎng)有4個(gè)相鄰月份的通話時(shí)長(zhǎng)差,5個(gè)月份的arpu值有4個(gè)相鄰月份的apru值差,4*3=12(個(gè)特征)。
③添加用戶5個(gè)月內(nèi)流量、通話時(shí)長(zhǎng)、arpu值的標(biāo)準(zhǔn)差,均值特征,特征增加到42+6=48個(gè)。
軌跡特征
①考察時(shí)間段前,用戶最后一個(gè)手機(jī)使用時(shí)長(zhǎng),48+1=49個(gè)特征。
②考察時(shí)間段前,用戶曾經(jīng)使用過(guò)多少個(gè)手機(jī),49+1=50個(gè)特征。
③考察時(shí)間段前,用戶使用的手機(jī)時(shí)長(zhǎng)的均值、最大值、最小值,50+3=53個(gè)特征。
④用戶最后一個(gè)手機(jī)的品牌、CPU頻率、內(nèi)存、屏幕大小、是否4G,53+5=58個(gè)特征。
多項(xiàng)式特征
在基礎(chǔ)特征、擴(kuò)展的基礎(chǔ)特征、以及基礎(chǔ)軌跡特征中,計(jì)算訓(xùn)練集中每一維特征與目標(biāo)列之間的皮爾遜相關(guān)系數(shù),取相關(guān)系數(shù)的絕對(duì)值,倒序排序,取排名前30%(48*03.3=14)的特征,然后分別對(duì)訓(xùn)練集和測(cè)試集,利用上述得到的特征進(jìn)行兩兩加、減、乘,得到91*3=273個(gè)新特征。(排名前30%的特征只能采用訓(xùn)練集數(shù)據(jù),因?yàn)榻?jīng)驗(yàn)知識(shí)只能從訓(xùn)練集獲取,但是進(jìn)階特征的構(gòu)建必須是訓(xùn)練集和測(cè)試集同步的,相當(dāng)于把從訓(xùn)練集得到的知識(shí)應(yīng)用在測(cè)試集上)。
軌跡特征擴(kuò)展
計(jì)算各個(gè)品牌的手機(jī)的平均使用時(shí)長(zhǎng),最大使用時(shí)長(zhǎng),最小使用時(shí)長(zhǎng)(不能跨越時(shí)間段),根據(jù)用戶最后一個(gè)手機(jī)的品牌,加入這3個(gè)特征,如果沒(méi)有品牌,可以選擇留空、填均值、或者把所有非著名品牌都統(tǒng)一當(dāng)作其他處理;
用戶倒數(shù)第二個(gè)手機(jī)的軌跡基礎(chǔ)特征、軌跡特征擴(kuò)展。
離散特征
對(duì)用戶的某些基本屬性特征(年齡,性別)構(gòu)建離散特征;
根據(jù)對(duì)換機(jī)業(yè)務(wù)場(chǎng)景的理解從用戶歷史換機(jī)軌跡表中提取出用戶距考察時(shí)間段最近的已使用手機(jī)的參數(shù),內(nèi)存、屏幕尺寸、處理器類型;
對(duì)上述軌跡特征中非數(shù)值型特征進(jìn)行One-hot編碼,為了避免數(shù)據(jù)稀疏和緯度災(zāi)難問(wèn)題,只有當(dāng)用戶歷史換機(jī)軌跡表中品牌使用量大于設(shè)定的閾值才唯一編碼,否則對(duì)小眾品牌統(tǒng)一編碼。
6.模型構(gòu)建和融合
前置條件:特征提取進(jìn)階構(gòu)建完畢,利用機(jī)器學(xué)習(xí)算法構(gòu)建模型auc達(dá)到0.66以上;
AUC(Area Under Curve,ROC曲線下的面積)為任取一對(duì)(正、反)樣本,正樣本的得分大于負(fù)樣本的得分的概率,在不平衡數(shù)據(jù)集中相比于召回率、準(zhǔn)確率更能體現(xiàn)一個(gè)分類器模型的好壞。在換機(jī)用戶預(yù)測(cè)場(chǎng)景中換機(jī)用戶遠(yuǎn)遠(yuǎn)小于非換機(jī)用戶的數(shù)量,因此本發(fā)明選用AUC作為評(píng)估模型優(yōu)劣的指標(biāo)。
為了表達(dá)模型的多樣性,分別選取樹(shù)型模型、超平面模型、惰性模型中典型的分類器Xgboost,LIBSVM,KNN等。
基于Xgboost分別對(duì)原始特征、排序特征、離散特征、多項(xiàng)式特征進(jìn)行特征選擇,按照特征重要性排序,在原始特征中選取前N1個(gè)特征,在排序特征中選取前N2個(gè)特征,在離散特征中選取前N3個(gè)特征,在多項(xiàng)式特征中選取前N4個(gè)特征,參數(shù)N1,N2,N3,N4隨機(jī)取值,Xgboost模型參數(shù)在小范圍(±0.5)內(nèi)隨機(jī)擾動(dòng),生成多個(gè)不同的Xgboost模型,所有的模型投票得到Xgboost分類器,圖2為構(gòu)建Xgboost模型的流程圖。
由于LIBSVM參數(shù)復(fù)雜,收斂速度慢等因素不利于手動(dòng)調(diào)整參數(shù),利用LIBSVM網(wǎng)格尋優(yōu)工具得到最優(yōu)模型SVM;
基于訓(xùn)練集進(jìn)行Boostrap采樣,Boostrap采樣得到多份不同的數(shù)據(jù),然后用不同的參數(shù)和數(shù)據(jù)訓(xùn)練多個(gè)KNN模型,所有的模型進(jìn)行投票得到模型KNN,圖3為構(gòu)建KNN模型的流程圖。
分別用上述Xgboost,SVM,KNN得到的訓(xùn)練數(shù)據(jù)的輸出結(jié)果帶到訓(xùn)練集中得到更加貼近真實(shí)結(jié)果的模型,再用這個(gè)模型訓(xùn)練測(cè)試數(shù)據(jù)結(jié)果,這樣模型會(huì)一次比一次好。
圖4為用上述多個(gè)模型得到的測(cè)試結(jié)果的偏差當(dāng)做特征作為線性模型LR(Linear Regression)的輸入,線性模型的輸出為上述每個(gè)模型的權(quán)重;用訓(xùn)練好的xgboost模型,SVM模型,KNN模型預(yù)測(cè)驗(yàn)證集,相對(duì)于驗(yàn)證集的真實(shí)標(biāo)簽,每個(gè)模型輸出與真是標(biāo)簽的做異或運(yùn)算的結(jié)果作為線性模型的特征,最后訓(xùn)練好的線性模型參數(shù)WT為上述xgboost模型,SVM模型,KNN模型的權(quán)重。最后用上述多個(gè)異構(gòu)模型對(duì)未知樣本進(jìn)行預(yù)測(cè),用上述線性模型的參數(shù)WT,對(duì)得到的多個(gè)預(yù)測(cè)結(jié)果進(jìn)行加權(quán)投票為最終的預(yù)測(cè)結(jié)果;若用戶為潛在換機(jī)用戶,那么根據(jù)用戶的消費(fèi)信息以及使用過(guò)的手機(jī)推薦套餐和相似的手機(jī)品牌。