基于隨機(jī)游走ACT谴咸、CosPlus、RWR骗露、SimRank岭佳、LRW

平均通勤時(shí)間ACT( train, test )

其數(shù)值解可通過求該網(wǎng)絡(luò)拉普拉斯矩陣的偽逆L+獲得v

function [ thisauc ] = ACT( train, test )

%% 計(jì)算ACT指標(biāo)并返回AUC值

? ? D = sparse(eye(size(train,1)));?

? ? % 生成稀疏的單位矩陣

? ? D(logical(D)) = sum(train,2);?

? ? % 生成度矩陣(對角線元素為同下標(biāo)節(jié)點(diǎn)的度)

? ? pinvL = sparse(pinv( full(D - train) ));? clear D;【pinvL代表Lxy】

? ? % 拉普拉斯矩陣的偽逆【pinv偽逆】

? ? Lxx = diag(pinvL);? ?

? ? % 取對角線元素【下標(biāo)相同的元素,為構(gòu)建?Lxx萧锉、Lyy】

? ? Lxx = repmat(Lxx, [1,size(train,1)]);?

? ? % 將對角線元素向量擴(kuò)展為n×n階矩陣【每行看成Lxx珊随,每列看成Lyy】

? ? sim = 1./(Lxx + Lxx' - 2*pinvL);? ? ? ? ? ? ?

? ? % 求相似度矩陣

? ? sim(isnan(sim)) = 0; sim(isinf(sim)) = 0;

? ? thisauc = CalcAUC(train,test,sim, 10000);? ?

? ? % 評測,計(jì)算該指標(biāo)對應(yīng)的AUC

end


余弦相似性CosPlus( train, test )

? ? sim = pinvL ./ (Lxx*Lxx').^0.5;? ? ? ? ? 【區(qū)別之處,其實(shí)只要有了Lxy叶洞,后續(xù)都好說了】? ? ? ? ? ? ?

其余同ACT


?重啟的隨機(jī)游走RWR( train, test, lambda )

P 為網(wǎng)絡(luò)的馬爾科夫概率轉(zhuǎn)移矩陣鲫凶,其元素Pxy=axy/kx 表示節(jié)點(diǎn) x 處的粒子下一步走到節(jié)點(diǎn) y 的概率。如果 x 和 y 相連則 1xya = 衩辟,否則為 0 螟炫。
上式的穩(wěn)態(tài)解

function [ thisauc ] = RWR( train, test, lambda )

%% 計(jì)算RWR指標(biāo)并返回AUC值

? ? deg = repmat(sum(train,2),[1,size(train,2)]);

? ? train = train ./ deg; clear deg;

? ? % 求轉(zhuǎn)移矩陣

? ? I = sparse(eye(size(train,1)));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 生成單位矩陣

? ? sim = (1 - lambda) * inv(I- lambda * train') * I;

? ? sim = sim+sim';? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 相似度矩陣計(jì)算完成

? ? train = spones(train);?

? ? % 將鄰接矩陣還原,因?yàn)闊o孤立點(diǎn)惭婿,所以不會(huì)有節(jié)點(diǎn)的度為0

? ? thisauc = CalcAUC(train,test,sim, 10000);? ? ?

? ? % 評測不恭,計(jì)算該指標(biāo)對應(yīng)的AUC

end


SimRank( train, test, lambda)


function [ thisauc ] = SimRank( train, test, lambda)

%% 計(jì)算SimRank指標(biāo)并返回AUC值

? ? deg = sum(train,1);? ?

? ? % 求節(jié)點(diǎn)的入度【按列求和】,構(gòu)成行向量财饥,供調(diào)用

? ? lastsim = sparse(size(train,1), size(train,2));

? ? % 存儲(chǔ)前一步的迭代結(jié)果换吧,初始化為全0矩陣

? ? sim = sparse(eye(size(train,1)));


? ? % 存儲(chǔ)當(dāng)前步的迭代結(jié)果,初始化為單位矩陣

? ? while(sum(sum(abs(sim-lastsim)))>0.0000001)? ?

? ? % 迭代至穩(wěn)態(tài)的判定條件【多次迭代之后sim與上一次之差不足0.000001才可退出while】

? ? ? ? lastsim = sim;? sim = sparse(size(train,1), size(train,2));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? for nodex = 1:size(train,1)-1? ? ?

? ? ? ? %對每一對節(jié)點(diǎn)的值進(jìn)行更新

? ? ? ? ? ? if deg(nodex) == 0

? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? end

? ? ? ? ? ? for nodey = nodex+1:size(train,1)? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? %-----將點(diǎn)x的鄰居和點(diǎn)y的鄰居所組成的所有節(jié)點(diǎn)對的前一步迭代結(jié)果相加

? ? ? ? ? ? ? ? if deg(nodey) == 0

? ? ? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? end

? ? ? ? ? ? ? ? sim(nodex,nodey) = lambda * sum(sum(lastsim(train(:,nodex)==1,train(:,nodey)==1))) / (deg(nodex)*deg(nodey));




? ? end

? ? ? ? end

? ? ? ? sim = sim+sim'+ sparse(eye(size(train,1)));

? ? end

? ? thisauc = CalcAUC(train,test,sim, 10000);? ?

? ? % 評測钥星,計(jì)算該指標(biāo)對應(yīng)的AUC

end



局部隨機(jī)游走指標(biāo)LRW( train, test, steps, lambda )

function [ thisauc ] = LRW( train, test, steps, lambda )

%% 計(jì)算LRW指標(biāo)并返回AUC值

? ? deg = repmat(sum(train,2),[1,size(train,2)]);

? ? train = train ./ deg; clear deg;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 求轉(zhuǎn)移矩陣

? ? I = sparse(eye(size(train,1)));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 生成單位矩陣

? ? sim = I;

? ? stepi = 0;

? ? while(stepi < steps)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 隨機(jī)游走的迭代

? ? ? ? sim = (1-lambda)*I + lambda * train' * sim;

? ? ? ? stepi = stepi + 1;

? ? end

? ? sim = sim+sim';? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 相似度矩陣計(jì)算完成

? ? train = spones(train);

? ? % 將鄰接矩陣還原沾瓦,因?yàn)闊o孤立點(diǎn),所以不會(huì)有節(jié)點(diǎn)的度為0

? ? thisauc = CalcAUC(train,test,sim, 10000);? ?

? ? % 評測谦炒,計(jì)算該指標(biāo)對應(yīng)的AUC

end




function [ thisauc ] = SRW( train, test, steps, lambda )

%% 計(jì)算SRW指標(biāo)并返回AUC值

? ? deg = repmat(sum(train,2),[1,size(train,2)]);

? ? train = train ./ deg; clear deg;

? ? % 求轉(zhuǎn)移矩陣

? ? I = sparse(eye(size(train,1)));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 生成單位矩陣

? ? tempsim = I;? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? % 用來暫存每步的迭代結(jié)果

? ? stepi = 0; sim = sparse(size(train,1),size(train,2));? ? ? ? ?

? ? % 隨機(jī)游走的迭代 sim用來存儲(chǔ)每步迭代的分值之和

? ? while(stepi < steps)

? ? ? ? tempsim = (1-lambda)*I + lambda * train' * tempsim;

? ? ? ? stepi = stepi + 1;

? ? ? ? sim = sim + tempsim;

? ? end

? ? sim = sim+sim';? ? ? ? ? ? ? ? ? ? ? ?

? ? % 相似度矩陣計(jì)算完成

? ? train = spones(train);?

? ? %將鄰接矩陣還原贯莺,因?yàn)闊o孤立點(diǎn),所以不會(huì)有節(jié)點(diǎn)的度為0

? ? thisauc = CalcAUC(train,test,sim, 10000);? ?

? ? % 評測宁改,計(jì)算該指標(biāo)對應(yīng)的AUC

end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缕探,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子还蹲,更是在濱河造成了極大的恐慌爹耗,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谜喊,死亡現(xiàn)場離奇詭異潭兽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)斗遏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門山卦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诵次,你說我怎么就攤上這事账蓉。” “怎么了逾一?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵剔猿,是天一觀的道長。 經(jīng)常有香客問我嬉荆,道長,這世上最難降的妖魔是什么酷含? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任鄙早,我火速辦了婚禮汪茧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘限番。我一直安慰自己舱污,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布弥虐。 她就那樣靜靜地躺著扩灯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霜瘪。 梳的紋絲不亂的頭發(fā)上珠插,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機(jī)與錄音颖对,去河邊找鬼捻撑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缤底,可吹牛的內(nèi)容都是我干的顾患。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼个唧,長吁一口氣:“原來是場噩夢啊……” “哼江解!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起徙歼,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤犁河,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鲁沥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呼股,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年画恰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彭谁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡允扇,死狀恐怖缠局,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情考润,我是刑警寧澤狭园,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站糊治,受9級特大地震影響唱矛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一绎谦、第九天 我趴在偏房一處隱蔽的房頂上張望管闷。 院中可真熱鬧,春花似錦窃肠、人聲如沸包个。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碧囊。三九已至,卻和暖如春纤怒,著一層夾襖步出監(jiān)牢的瞬間糯而,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工肪跋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歧蒋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓州既,卻偏偏與公主長得像谜洽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子吴叶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容