一種基于AdaBoost的鏈路預(yù)測(cè)算法
【專利摘要】本發(fā)明提供了一種基于AdaBoost的鏈路預(yù)測(cè)算法,該方法適用于為當(dāng)前拓?fù)浣Y(jié)構(gòu)中的通信實(shí)體預(yù)測(cè)其將來(lái)發(fā)生通信的可能性。用戶輸入當(dāng)前網(wǎng)絡(luò)的通信關(guān)系,通過(guò)一系列的計(jì)算,能夠得到對(duì)下一時(shí)刻的通信實(shí)體是否發(fā)送通信的預(yù)測(cè)。該方法將Boosting方法中提升弱學(xué)習(xí)方法為強(qiáng)學(xué)習(xí)方法的思想應(yīng)用到鏈路預(yù)測(cè)之中。本發(fā)明的優(yōu)勢(shì)在于相對(duì)于現(xiàn)有的各種常用的預(yù)測(cè)算法而言,具有更高的靈敏度和更低的誤報(bào)率,能夠在顯著提高算法召回率的同時(shí),保持計(jì)算結(jié)果的正確性。
【專利說(shuō)明】一種基于AdaBoost的鏈路預(yù)測(cè)算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),具體涉及一種鏈路預(yù)測(cè)的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]鏈路預(yù)測(cè)是鏈路挖掘中將鏈接作為挖掘?qū)ο蟮膽?yīng)用。主要預(yù)測(cè)已經(jīng)存在但尚未被發(fā)現(xiàn)的鏈接以及尚未鏈接的節(jié)點(diǎn)間未來(lái)產(chǎn)生鏈接的可能性。隨著一些鏈路預(yù)測(cè)算法開(kāi)始在商業(yè)領(lǐng)域得到應(yīng)用,與之相關(guān)的研究已經(jīng)成為一個(gè)熱門(mén)領(lǐng)域,其中基于拓?fù)鋱D的鏈路預(yù)測(cè)算法研究工作在近年來(lái)受到了廣泛重視。例如Facebook采用基于RWR(Random Walk withRestart)的方法預(yù)測(cè)用戶的朋友關(guān)系,據(jù)此提高好友推薦的成功率。
[0003]基于網(wǎng)絡(luò)拓?fù)鋱D的鏈路預(yù)測(cè)算法主要包括基于節(jié)點(diǎn)鄰居的相似性,基于最大似然估計(jì)以及基于概率模型等三種類型。代表性算法包括基于局部信息相似性的共同鄰居(CommonNeighbors)算法,基于路徑相似性的Katz算法和基于隨機(jī)游走相似性的RWR算法。其中,基于節(jié)點(diǎn)鄰居相似性的鏈路預(yù)測(cè)算法研究較早,在實(shí)際工作中取得了廣泛應(yīng)用。另一類取得實(shí)際推廣應(yīng)用的方法是基于隨機(jī)游走的鏈路預(yù)測(cè)算法。這類算法的基本思想都是對(duì)圖中節(jié)點(diǎn)所有可能的組合進(jìn)行排序,選擇其中最可能出現(xiàn)在新圖中的節(jié)點(diǎn)對(duì)(即圖中的邊)。然而近一兩年來(lái),無(wú)論是在對(duì)已有算法的改進(jìn),還是在提出新算法方面,都沒(méi)有出現(xiàn)有突破性的成果,基于拓?fù)涞逆溌奉A(yù)測(cè)算法的召回率依然較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種基于AdaBoost的鏈路預(yù)測(cè)算法。使用本發(fā)明提供的實(shí)施例,可以對(duì)當(dāng)前網(wǎng)絡(luò)拓?fù)鋱D中將來(lái)可能發(fā)生鏈接的節(jié)點(diǎn)對(duì)進(jìn)行預(yù)測(cè)。
[0005]為了克服當(dāng)前主流的基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的鏈路預(yù)測(cè)算法普遍存在召回率較低的問(wèn)題。通過(guò)我們的研究發(fā)現(xiàn),現(xiàn)有的主流鏈路預(yù)測(cè)方法的預(yù)測(cè)結(jié)果并不完全相交,利用算法結(jié)果的疊加提高召回率。但是,直接累加求和并不可行,因?yàn)闀?huì)降低總的算法精度。據(jù)此考慮采用Boosting方法對(duì)其進(jìn)行改進(jìn)。首先將鏈路預(yù)測(cè)問(wèn)題看作二分類問(wèn)題,對(duì)下一時(shí)刻網(wǎng)絡(luò)中每一條可能存在的邊(節(jié)點(diǎn)對(duì)),其分類結(jié)果為兩類:存在或不存在。接下來(lái)借用Boosting方法通過(guò)錯(cuò)誤反饋提升弱學(xué)習(xí)算法得到強(qiáng)學(xué)習(xí)算法的思想,根據(jù)一定的原則選擇若干鏈路預(yù)測(cè)算法作為弱分類器,基于AdaBoost算法提出并實(shí)現(xiàn)了一個(gè)新的鏈路預(yù)測(cè)方法。
[0006]該方法的步驟包括:
[0007]讀取預(yù)測(cè)訓(xùn)練樣本以及預(yù)測(cè)測(cè)試樣本;
[0008]為預(yù)測(cè)訓(xùn)練樣本附上其真實(shí)所在類的標(biāo)簽值;
[0009]為每個(gè)樣本的權(quán)重賦初始值;
[0010]選取若干鏈路預(yù)測(cè)算法作為弱分類器;
[0011]使用各個(gè)分類器為訓(xùn)練樣本做分類;
[0012]計(jì)算每個(gè)分類器的投票權(quán)重;[0013]使用每個(gè)分類器為預(yù)測(cè)測(cè)試集合中的樣本做分類;
[0014]按上述各分類器的分類結(jié)果為預(yù)測(cè)測(cè)試集合中的樣本投票,做出最終預(yù)測(cè);
[0015]輸出對(duì)預(yù)測(cè)測(cè)試集合中樣本的預(yù)測(cè)結(jié)果;
[0016]最后,實(shí)施本發(fā)明具有以下有益效果:
[0017]本發(fā)明實(shí)施例的有益效果是,將Boosting思想應(yīng)用于鏈接預(yù)測(cè)之中,相對(duì)于現(xiàn)有的各種常用算法而言,具有更高的靈敏度和更低的誤報(bào)率,能夠在顯著提高算法召回率的同時(shí),保持計(jì)算結(jié)果的正確性。
【專利附圖】
【附圖說(shuō)明】
[0018]附圖是本發(fā)明改進(jìn)現(xiàn)有鏈路預(yù)測(cè)算法提出的一種基于AdaBoost的鏈路預(yù)測(cè)算法的算法流程。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。
[0020]在本實(shí)施例中,如圖所示,提供了一個(gè)優(yōu)化的算法流程:
[0021]步驟101、讀取預(yù)測(cè)訓(xùn)練樣本以及預(yù)測(cè)測(cè)試樣本;
[0022]對(duì)于預(yù)測(cè)訓(xùn)練樣本以及訓(xùn)練測(cè) 試樣本,讀取其信息并生成網(wǎng)絡(luò)拓?fù)鋱D。
[0023]步驟102、為預(yù)測(cè)訓(xùn)練樣本附上其真實(shí)所在類的標(biāo)簽值;
[0024]對(duì)于一組長(zhǎng)度為m的預(yù)測(cè)訓(xùn)練集合C。Ω表示Xi被分類的類型值的集合。對(duì)于Xi,如果它確實(shí)出現(xiàn)在下一時(shí)間段的圖中,則Ii = I,反之,Yi = -1o
[0025]步驟103、為每個(gè)樣本的權(quán)重賦初始值;
[0026]每個(gè)樣本的權(quán)重初始值相等,是整個(gè)樣本長(zhǎng)度的倒數(shù),即為1/m。
[0027]步驟104、選取若干鏈路預(yù)測(cè)算法作為弱分類器;
[0028]按照預(yù)測(cè)結(jié)果互補(bǔ)的原則選取基于節(jié)點(diǎn)鄰居的相似性,基于最大似然估計(jì)以及基于概率模型等三種類型鏈路預(yù)測(cè)的方法作為弱分類器。
[0029]步驟105、使用各個(gè)分類器為訓(xùn)練樣本做分類;
[0030]對(duì)每一種預(yù)測(cè)算法t,使用算法為C中每一對(duì)節(jié)點(diǎn)計(jì)算一個(gè)值,然后按照該值對(duì)節(jié)點(diǎn)對(duì)進(jìn)行降序排列,選取前?個(gè)節(jié)點(diǎn)對(duì),形成集合P,表示算法t認(rèn)為這些節(jié)點(diǎn)對(duì)會(huì)在下一時(shí)刻的圖中存在,剩下的形成集合Q,表示算法t認(rèn)為這些節(jié)點(diǎn)對(duì)不會(huì)在下一時(shí)刻的圖中存在。y是集合C中實(shí)際存在于下一時(shí)間段的圖中的節(jié)點(diǎn)對(duì)的數(shù)目。將預(yù)測(cè)算法t看作一個(gè)弱分類器t, t做出的假設(shè)為ht。如果Xi e P,則Iit(Xi) = I,反之,若Xi e Q,Iit(Xi) =-1。
[0031]步驟106、計(jì)算每個(gè)分類器的投票權(quán)重;
[0032]進(jìn)行T次循環(huán),t = I,..,T:每一次循環(huán)時(shí),首先為每個(gè)分類器計(jì)算當(dāng)前的錯(cuò)誤率。對(duì)于每一個(gè)樣本,將分類器t對(duì)其的分類與其本身所屬類型相比,如果不一致,則在此分類器的錯(cuò)誤率上加上該樣本的權(quán)重。計(jì)算并找出錯(cuò)誤率最小的分類器作為當(dāng)前的分類器。但是如果錯(cuò)誤率大于1/2,就停止算法。對(duì)錯(cuò)誤率進(jìn)行歸一化處理,作為當(dāng)前分類器t的投票權(quán)重。更新每個(gè)樣本的權(quán)重,如果該樣本被當(dāng)前分類器錯(cuò)誤分類,則它的權(quán)重上升。相對(duì)來(lái)說(shuō)Xi如果被正確分類那么它的權(quán)重就降低了。T次循環(huán)后,得到每個(gè)分類器的投票權(quán)重。[0033]步驟107、使用每個(gè)分類器為預(yù)測(cè)測(cè)試集合中的樣本做分類;
[0034]預(yù)測(cè)測(cè)試集合D中,使用&表示D中的每個(gè)節(jié)點(diǎn)對(duì),η為D中所有節(jié)點(diǎn)對(duì)的數(shù)目。對(duì)于每種預(yù)測(cè)算法t,為預(yù)測(cè)測(cè)試集合D中每一對(duì)節(jié)點(diǎn)計(jì)算一個(gè)值,然后進(jìn)行按照該值對(duì)節(jié)點(diǎn)對(duì)進(jìn)行降序排列,選取前m’個(gè)節(jié)點(diǎn)對(duì),形成集合P’,剩下的形成集合Q’。m’是集合D中實(shí)際存在于下一時(shí)間的圖中的節(jié)點(diǎn)對(duì)的數(shù)目。如果e」e P’,則ht(ej) = 1,反之,若e」e Q’,ht (ej) = -1。
[0035]步驟108、為測(cè)試樣本做出最終預(yù)測(cè);
[0036]對(duì)于每個(gè)ep由每個(gè)弱分類器t對(duì)其進(jìn)行投票。如果分類器t認(rèn)為&在下一時(shí)刻圖中存在,則&的權(quán)重加上此分類器的投票權(quán)重。如果分類器t認(rèn)為&在下一時(shí)刻圖中不存在,則為h的權(quán)重減去此分類器的投票權(quán)重。在所有分類器對(duì)h投票完成之后,若θ」的權(quán)重為正,即預(yù)測(cè)&會(huì)在下一時(shí)刻的圖中存在。反之,&的權(quán)重為負(fù),則預(yù)測(cè)&不會(huì)在下一時(shí)刻的圖中存在。
[0037]步驟109、輸出對(duì)預(yù)測(cè)測(cè)試樣本的預(yù)測(cè)結(jié)果
[0038]對(duì)預(yù)測(cè)結(jié)果進(jìn)行輸出
[0039]盡管上面對(duì)本發(fā)明說(shuō)明性的【具體實(shí)施方式】進(jìn)行了描述,以便于本技術(shù)領(lǐng)的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于【具體實(shí)施方式】的范圍,對(duì)本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見(jiàn)的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。
【權(quán)利要求】
1.一種基于AdaBoost的鏈路預(yù)測(cè)算法:其特征在于,首先讀取預(yù)測(cè)訓(xùn)練樣本以及預(yù)測(cè)測(cè)試樣本;為預(yù)測(cè)訓(xùn)練樣本附上其真實(shí)所在類的標(biāo)簽值;為每個(gè)樣本的權(quán)重賦初始值;按照算法結(jié)果互補(bǔ)原則選取若干鏈路預(yù)測(cè)算法作為弱分類器;使用各個(gè)分類器為訓(xùn)練樣本做分類;循環(huán)計(jì)算得到所有分類器投票權(quán)重,對(duì)每次循環(huán),按照分類結(jié)果是否正確計(jì)算各個(gè)分類器當(dāng)前錯(cuò)誤率,選擇出錯(cuò)誤率最小的分類器,計(jì)算其投票權(quán)重,并對(duì)所有的樣本進(jìn)行權(quán)重升級(jí)。循環(huán)結(jié)束后得到每個(gè)分類器的投票權(quán)重;使用每個(gè)分類器為預(yù)測(cè)測(cè)試集合中的樣本做分類;按上述各分類器的分類結(jié)果為預(yù)測(cè)測(cè)試集合中的樣本投票,最終投票結(jié)果為正的樣本即為預(yù)測(cè)其會(huì)在將來(lái)發(fā)生鏈接,投票結(jié)果為負(fù)的樣本即為預(yù)測(cè)其不會(huì)再將來(lái)發(fā)生鏈接。
【文檔編號(hào)】G06F19/00GK103886169SQ201210553291
【公開(kāi)日】2014年6月25日 申請(qǐng)日期:2012年12月19日 優(yōu)先權(quán)日:2012年12月19日
【發(fā)明者】秦志光, 劉嶠, 梁棋, 秦臻, 鄭榮輝, 沐曉帆, 李汝佟 申請(qǐng)人:電子科技大學(xué)