基于用戶歷史數(shù)據(jù)的移動(dòng)流量套餐推薦算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種流量套餐推薦算法,即利用用戶歷史消費(fèi)數(shù)據(jù)并采用數(shù)據(jù)挖掘技 術(shù)發(fā)現(xiàn)潛在提升用戶,利用協(xié)同過(guò)濾推薦算法向其推薦合適的流量套餐。
【背景技術(shù)】
[0002] 隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來(lái),用戶的生活方式發(fā)生了變化,使得電信運(yùn)營(yíng)商的經(jīng) 營(yíng)重心發(fā)生轉(zhuǎn)移,流量業(yè)務(wù)將逐漸替代傳統(tǒng)話音業(yè)務(wù)成為電信行業(yè)的競(jìng)爭(zhēng)焦點(diǎn)與利潤(rùn)點(diǎn)。 利用精準(zhǔn)營(yíng)銷準(zhǔn)確地預(yù)測(cè)出潛在提升流量套餐的用戶,并向用戶推薦合適的流量套餐。通 過(guò)精準(zhǔn)營(yíng)銷不僅可以刺激用戶流量的使用,也可以提高用戶的滿意度。
[0003] 傳統(tǒng)的流量套餐推薦面向所有用戶并且推薦較為隨機(jī),使得推薦效果不明顯并且 為很多用戶反感。本發(fā)明利用公司內(nèi)部巨大的業(yè)務(wù)數(shù)據(jù),使用數(shù)據(jù)挖掘的方法挖掘出更換 流量套餐的規(guī)律,發(fā)現(xiàn)潛在提升流量套餐的人群,然后對(duì)他們進(jìn)行定向推送,從而提升流量 套餐營(yíng)銷的成功率,真正做到為合適的人推薦合適的套餐,達(dá)到精準(zhǔn)營(yíng)銷的目的。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的,構(gòu)造所需的訓(xùn)練數(shù)據(jù)集和預(yù)測(cè)數(shù)據(jù)集,在數(shù)據(jù)集上實(shí)施隨機(jī)森林 分類算法,準(zhǔn)確快速地挖掘出潛在流量套餐提升用戶作為目標(biāo)用戶,然后利用K-means聚 類算法得到粗略相似用戶簇,最后使用協(xié)同過(guò)濾算法對(duì)目標(biāo)用戶實(shí)施ΤορΝ推薦算法。
[0005] 為解決上述問(wèn)題,本發(fā)明的技術(shù)方案是,基于用戶歷史消費(fèi)信息并采用數(shù)據(jù)挖掘 分析技術(shù)的移動(dòng)用戶流量套餐推薦算法,包括如下步驟:
[0006] 1)目標(biāo)用戶發(fā)現(xiàn)階段:
[0007] a獲取已處理生成的數(shù)據(jù)集,包括訓(xùn)練集和預(yù)測(cè)集;
[0008]b從訓(xùn)練集S中有放回的隨機(jī)抽取樣本形成新的數(shù)據(jù)集St;實(shí)施隨機(jī)森林分類算 法發(fā)現(xiàn)潛在流量套餐提升用戶作為目標(biāo)用戶;
[0009] c結(jié)束;
[0010] 2)流量套餐推薦階段:
[0011] a獲取已處理生成的預(yù)測(cè)集;
[0012]b實(shí)施K-means聚類算法得到粗略相似用戶簇;
[0013]c獲取l)_b中得到的目標(biāo)用戶;
[0014] d在同一簇中根據(jù)用戶的相似度函數(shù),為目標(biāo)用戶實(shí)施ΤορΝ推薦算法;
[0015]e結(jié)束;
[0016] 步驟1) _a中所述的數(shù)據(jù)集具體構(gòu)造過(guò)程如下:
[0017] 1)選擇用戶狀態(tài)表中狀態(tài)正常的用戶作為我們的預(yù)測(cè)用戶,每個(gè)用戶都有一個(gè)唯 一的user_id;
[0018] 2)以時(shí)間點(diǎn)為分割,規(guī)劃出每個(gè)用戶在該時(shí)間點(diǎn)之前的消費(fèi)信息、換機(jī)信息等,并 通過(guò)userid關(guān)聯(lián)起來(lái),以當(dāng)前月為時(shí)間分割點(diǎn)的是預(yù)測(cè)數(shù)據(jù)集,以前的其他月為時(shí)間分 割點(diǎn)的是訓(xùn)練數(shù)據(jù)集;
[0019] 3)求出每個(gè)屬性的信息增益率,選擇信息增益率大的屬性,摒棄信息增益率小的 屬性;
[0020] 4)過(guò)濾掉消費(fèi)屬性值為空的數(shù)據(jù);
[0021] 5)過(guò)濾掉性別異常的用戶;
[0022] 6)為訓(xùn)練數(shù)據(jù)集的每一條記錄添加類標(biāo),具體方法是比較上個(gè)月的消費(fèi)總流量與 當(dāng)月的消費(fèi)總流量,若當(dāng)月流量提高,則置為1 ;否則,置為〇 ;
[0023] 7)結(jié)束;
[0024] 步驟1)_b中所述的隨機(jī)森林分類算法具體過(guò)程如下:
[0025] 1)從訓(xùn)練集S中有放回的隨機(jī)抽取樣本形成新的數(shù)據(jù)集St,抽取的數(shù)量是原來(lái)數(shù) 據(jù)總量的三分之一;
[0026] 2)在屬性集合X中隨機(jī)選取k個(gè)屬性,k=sqrt(η)+1,用這k個(gè)屬性中的數(shù)據(jù)構(gòu) 造成訓(xùn)練集St';
[0027] 3)在訓(xùn)練集S/上構(gòu)建決策樹(shù)分類器;
[0028] 4)重復(fù)1) -3)過(guò)程T次,構(gòu)建T個(gè)決策樹(shù)分類器;
[0029] 5)將這T棵決策樹(shù)組合生成隨機(jī)森林分類模型,對(duì)于每一條數(shù)據(jù)或記錄,每棵決 策樹(shù)都會(huì)決策出一個(gè)類標(biāo),(類似于對(duì)該類標(biāo)投了一票),最后選擇得票數(shù)最多的類標(biāo)作為 該數(shù)據(jù)的最終類標(biāo)。
[0030] 步驟2) -b中K-means聚類算法具體過(guò)程如下,其中K預(yù)先確定:
[0031] 1)在數(shù)據(jù)集中隨機(jī)選取K個(gè)數(shù)據(jù)作為每個(gè)類別的初始聚簇中心;
[0032] 2)根據(jù)歐式公式,把數(shù)據(jù)分配到離它最近的聚簇中,公式如下:
[0033]
[0034] 其中d(i,c)為數(shù)據(jù)i與中心點(diǎn)c的距離,Xlik為數(shù)據(jù)i的屬性k的值,η為屬性個(gè) 數(shù);取d(i,c)時(shí)最小c的作為數(shù)據(jù)i的中心點(diǎn);
[0035] 3)重新計(jì)算每個(gè)簇中新的中心值;
[0036] 4)重復(fù)2)和3)直到滿足收斂條件,收斂函數(shù)如下:
[0037]
[0038] 其中E是所有數(shù)據(jù)到聚簇中心的距離平方之和,p是其中的一個(gè)數(shù)據(jù),!111是所屬第 i個(gè)類別中的聚簇中心點(diǎn),k是聚簇的個(gè)數(shù)。
[0039] 步驟2) -d中為用戶實(shí)施ΤορΝ流量套餐推薦算法具體過(guò)程如下:
[0040] 1)利用用戶的消費(fèi)屬性和自身屬性所構(gòu)成的特征計(jì)算用戶的相似度,關(guān)于用戶相 似度公式如下:
[0041]
[0042] 公式中Vi=(VVii2, . . .,Viin)表示第i用戶的特征屬性組成的η維向量,η是 屬性的個(gè)數(shù),而且所有的屬性值都是歸一化以后的,在區(qū)間[0, 1],g表示第i用戶所有屬 性的均值;
[0043] 2)通過(guò)相似度公式求出用戶之間的相似度,然后得出用戶的近鄰用戶集為NNU,結(jié) 合用戶對(duì)項(xiàng)目的打分,能得出用戶u對(duì)目標(biāo)項(xiàng)目s的預(yù)測(cè)打分公式如下:
[0044]
[0045] 上式中RliS表示第i用戶對(duì)第s項(xiàng)目的打分,公式如下:
[0046]
[0047] 3)最后根據(jù)用戶對(duì)目標(biāo)項(xiàng)目的預(yù)測(cè)打分情況,對(duì)打分進(jìn)行排序,并且過(guò)濾掉比用 戶原來(lái)使用量少的流量套餐,得出用戶的ΤορΝ的目標(biāo)項(xiàng)目作為推薦項(xiàng)目列表。
[0048] 本發(fā)明有益效果:本發(fā)明基于用戶的歷史消費(fèi)數(shù)據(jù),采用隨機(jī)森林的分類算法,可 以快速準(zhǔn)確地發(fā)現(xiàn)有潛在流量套餐提升的用戶;使用K-means聚類算法首先進(jìn)行粗略相似 用戶計(jì)算,可大大降低后期推薦算法的計(jì)算復(fù)雜度;推薦算法采用協(xié)同過(guò)濾的ΤορΝ,配合 前期K-means相似用戶簇,推薦效果明顯且計(jì)算效率高。
【附圖說(shuō)明】
[0049] 圖1為移動(dòng)用戶流量套餐推薦操作流程圖。
[0050]圖2為本發(fā)明的基于用戶歷史消費(fèi)信息并采用數(shù)據(jù)挖掘分析技術(shù)的移動(dòng)用戶流 量套餐推薦算法的流程圖。
[0051] 圖3為采用隨機(jī)森林分類算法挖掘潛在提升用戶的流程圖。
[0052] 圖4為采用K-means聚類算法獲得粗略相似用戶簇的流程圖。
[0053] 圖5為采用協(xié)同過(guò)濾算法得到套餐推薦列表的流程圖。
【具體實(shí)施方式】
[0054] 為了更了解本發(fā)明的技術(shù)內(nèi)容,特舉實(shí)例并配合所附圖式說(shuō)明如下。
[0055] 如圖1所示,移動(dòng)用戶流量套餐推薦算法是通過(guò)數(shù)據(jù)預(yù)處理生成訓(xùn)練數(shù)據(jù)集和 預(yù)測(cè)訓(xùn)練集,然后采用隨機(jī)森林分類算法挖掘出潛在提升用戶作為目標(biāo)用戶,最后采用 K-means聚類算法得到相似用戶簇,即用戶近鄰,并在用戶近鄰的基礎(chǔ)上使用協(xié)同過(guò)濾算法 得到用戶對(duì)項(xiàng)目的打分矩陣,得到ΤορΝ套餐推薦列表。
[0056] 隨機(jī)森林分類算法挖掘潛在用戶和K-means與協(xié)同過(guò)濾相結(jié)合的套餐推薦算法 是該發(fā)明的主要步驟,本發(fā)明的思路就是通過(guò)集成數(shù)據(jù)挖掘技術(shù),采用多種算法相結(jié)合的 方法來(lái)提高算法的準(zhǔn)確性和運(yùn)行速度。
[0057] 本發(fā)明的基于用戶歷史消費(fèi)信息并采用數(shù)據(jù)挖掘分析技術(shù)的移動(dòng)用戶流量套餐 推薦算法的如圖2所示。
[0058] 步驟0為本發(fā)明的起始狀態(tài);
[0059] 在目標(biāo)用戶發(fā)現(xiàn)階段(步驟1-3),步驟1是數(shù)據(jù)預(yù)處理,即對(duì)獲取到的原始數(shù)據(jù)集 進(jìn)行過(guò)濾和整合,得到所需的訓(xùn)練集和預(yù)測(cè)集;
[0060] 步驟2是在步驟1所生成的訓(xùn)練集和預(yù)測(cè)集上運(yùn)行隨機(jī)森林分類算法;
[0061 ] 步驟3是將挖掘出的目標(biāo)用戶保存至數(shù)據(jù)庫(kù)中。
[0062] 在流量套餐推薦階段(步驟4-6),步驟4,在步驟1所生成的訓(xùn)練數(shù)據(jù)集上運(yùn)行 K-means聚類算法得到用戶近鄰;
[0063] 步驟5是在步驟4所得到的用戶近鄰的基礎(chǔ)上實(shí)施協(xié)同過(guò)濾算法得到目標(biāo)用戶對(duì) 項(xiàng)目的打分矩陣,并進(jìn)行排序,過(guò)濾等操作得到套餐推薦列表;
[0064] 步驟6是將步驟5所得到的套餐列表保存至數(shù)據(jù)庫(kù)。
[0065] 步驟7是本發(fā)明的基于用戶歷史消費(fèi)信息并采用數(shù)據(jù)挖掘分析技術(shù)的移動(dòng)用戶 流量套餐推薦算法的結(jié)束步驟。
[0066] 圖3是對(duì)圖2中步驟2的詳細(xì)描述。
[0067] 步驟8為起始狀態(tài);