流程圖;
[0053] 圖2是k-medoids聚類算法的流程圖;
[0054] 圖3是最大最小k-medoids初始聚類中心選擇的流程圖;
[0055] 圖4是五折交叉驗(yàn)證流程圖;
[0056] 圖5是在movielens數(shù)據(jù)集上通過五折交叉驗(yàn)證,傳統(tǒng)用戶協(xié)同過濾推薦、基于項(xiàng) 目聚類和局部最近鄰的用戶協(xié)同過濾推薦、基于項(xiàng)目聚類和局部興趣改進(jìn)的用戶協(xié)同過濾 推薦的實(shí)驗(yàn)結(jié)果圖;
[0057] 圖6是在movielens數(shù)據(jù)集上通過十折交叉驗(yàn)證,傳統(tǒng)用戶協(xié)同過濾推薦、基于項(xiàng) 目聚類和局部最近鄰的用戶協(xié)同過濾推薦、基于項(xiàng)目聚類和局部興趣改進(jìn)的用戶協(xié)同過濾 推薦的實(shí)驗(yàn)結(jié)果圖;
[0058] 圖7是在movielens數(shù)據(jù)集上通過Allbut1驗(yàn)證,隨機(jī)取70%作為訓(xùn)練集,30% 作為測(cè)試集時(shí),傳統(tǒng)用戶協(xié)同過濾推薦、基于項(xiàng)目聚類和局部最近鄰的用戶協(xié)同過濾推薦、 基于項(xiàng)目聚類和局部興趣改進(jìn)的用戶協(xié)同過濾推薦在評(píng)價(jià)指標(biāo)為平均絕對(duì)誤差MAE時(shí)的 實(shí)驗(yàn)結(jié)果圖;
[0059] 圖8是在movielens數(shù)據(jù)集上通過Given2驗(yàn)證,隨機(jī)取70%作為訓(xùn)練集,30%作 為測(cè)試集時(shí),傳統(tǒng)用戶協(xié)同過濾推薦、基于項(xiàng)目聚類和局部最近鄰的用戶協(xié)同過濾推薦、基 于項(xiàng)目聚類和局部興趣改進(jìn)的用戶協(xié)同過濾推薦在評(píng)價(jià)指標(biāo)為平均絕對(duì)誤差MAE時(shí)的實(shí) 驗(yàn)結(jié)果圖;
[0060] 圖9是在movielens數(shù)據(jù)集上通過Given10驗(yàn)證,隨機(jī)取70%作為訓(xùn)練集,30% 作為測(cè)試集時(shí),傳統(tǒng)用戶協(xié)同過濾推薦、基于項(xiàng)目聚類和局部最近鄰的用戶協(xié)同過濾推薦、 基于項(xiàng)目聚類和局部興趣改進(jìn)的用戶協(xié)同過濾推薦在評(píng)價(jià)指標(biāo)為平均絕對(duì)誤差MAE時(shí)的 實(shí)驗(yàn)結(jié)果圖;
[0061] 圖10是在movielens數(shù)據(jù)集上通過五折交叉驗(yàn)證,傳統(tǒng)用戶協(xié)同過濾推薦、基于 項(xiàng)目聚類和局部最近鄰的用戶協(xié)同過濾推薦和基于項(xiàng)目聚類、局部興趣改進(jìn)的用戶協(xié)同過 濾推薦在評(píng)價(jià)指標(biāo)為均方根誤差RMSE時(shí)的實(shí)驗(yàn)結(jié)果圖;
[0062] 圖11是在eachmovie數(shù)據(jù)集上通過五折交叉驗(yàn)證,傳統(tǒng)用戶協(xié)同過濾推薦、基于 項(xiàng)目聚類和局部最近鄰的用戶協(xié)同過濾推薦和基于項(xiàng)目聚類、局部興趣改進(jìn)的用戶協(xié)同過 濾推薦在評(píng)價(jià)指標(biāo)為平均絕對(duì)誤差MAE時(shí)的實(shí)驗(yàn)結(jié)果圖。
【具體實(shí)施方式】
[0063] 以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。
[0064] 本發(fā)明為了克服現(xiàn)有技術(shù)的推薦系統(tǒng)的推薦質(zhì)量無法應(yīng)對(duì)海量數(shù)據(jù)的增長(zhǎng),提供 一種基于k-medoids項(xiàng)目聚類和局部興趣融合的用戶協(xié)同過濾推薦方法,包括如下步驟:
[0065] 1)采用最小化最大相似度準(zhǔn)則確定K個(gè)初始聚類中心;
[0066] 2)根據(jù)相似度和最大的k-medoids聚類算法對(duì)項(xiàng)目進(jìn)行聚類;
[0067] 3)在聚類基礎(chǔ)上,尋找用戶局部最近鄰;
[0068] 4)將用戶全局最近鄰與局部最近鄰以相似度和之比作為權(quán)值進(jìn)行融合,根據(jù)用戶 全局最近鄰與局部最近鄰對(duì)項(xiàng)目的評(píng)分,預(yù)測(cè)用戶對(duì)項(xiàng)目的評(píng)分,完成推薦。
[0069] 步驟1)具體為:
[0070] 1. 1)使用余弦相似度計(jì)算所有樣本點(diǎn)i,j之間的相似度sim(i,j),其中,i,j= 1,2,…,n,i乒j,
[0071]
[0072] 其中,Uy表示項(xiàng)目i和項(xiàng)目j共同評(píng)分的項(xiàng)目集,1^表示項(xiàng)目i有評(píng)分的項(xiàng)目集, %表示項(xiàng)目j有評(píng)分的項(xiàng)目集,rUil表示用戶u對(duì)項(xiàng)目i的評(píng)分,r,表示用戶u對(duì)項(xiàng)目j 的評(píng)分,聚類后使得K個(gè)聚類劃分的相似度和J值達(dá)到最大,利用皮爾森相似度、修正的余 弦相似度等其它相似度也在保護(hù)范圍內(nèi);
[0073] 相似度也可以通過皮爾森相似度、修正的余弦相似度等其他相似度計(jì)算。
[0074] 將所有樣本點(diǎn)之間相似度最小的兩個(gè)樣本點(diǎn)作為前兩個(gè)初始聚類中心μ挪μ2, k= 2 ;
[0075] 1. 2)計(jì)算未選為初始聚類中心的其它樣本點(diǎn)i到已經(jīng)被選定的每一個(gè)聚類中心 μ1;μ2,.",Pk的相似度sim(i,μIsimQ,y2),...,sim(i,yk);
[0076] 1. 3)選擇樣本點(diǎn)i到已經(jīng)被選定的聚類中心μ^μ2,…μk的相似度中最大相 似度為樣本點(diǎn)i到聚類中心集的相似度sim(i,μ) =max{sim(i,μ),sim(i,μ2),… ,sim(i,yk)};
[0077] 1. 4)選取到聚類中心集的相似度最小值的樣本點(diǎn)Γ為新增的第k+1個(gè)聚類中心 yk+1,sim(i*,μ) =min{sim(l,y),sim(2,y),--*sim(i,y)--*sim(n,μ)};
[0078]1. 5)如果k+1 <K,則賦值k=k+1,轉(zhuǎn)步驟2),否則利用最小化最大相似度準(zhǔn)則 確定K個(gè)初始聚類中心的過程結(jié)束。
[0079] 相似度也可以通過皮爾森相似度、修正的余弦相似度等其他相似度計(jì)算。
[0080] 如圖2、圖3所示,步驟2)中,以余弦相似度作為樣本點(diǎn)之間的度量,采用相似度和 最大作為聚類準(zhǔn)則函數(shù),聚類后使得K個(gè)劃分到達(dá)相似度和最大。步驟2)具體為:
[0081] 2. 1)使用余弦相似度計(jì)算所有樣本點(diǎn)i,j之間的相似度sim(i,j),其中,i,j= 1,2,…,n,i乒j;
[0082]
[0083] 2. 2)確定K個(gè)初始聚類中心μ。,每一個(gè)聚類c的聚類中心μ。為樣本點(diǎn),c= 1,V..,K;
[0084] 2· 3)對(duì)于剩余的其他樣本點(diǎn)i,i= 1,2,…,n,i乒uc,c= 1,2,…,K,貝lj 根據(jù)樣本點(diǎn)i與步驟2. 2)所述的聚類中心μ。的相似度sim(i,μ。),按相似度最大 的準(zhǔn)則,將樣本點(diǎn)i分配給與其最相似的聚類中心所代表的類f中,sim( 4氣·)= max{sim(i, μ2), ···,sim(i,μκ)};
[0085] 2. 4)計(jì)算每個(gè)聚類的相似度和噸,A);其中,1?示聚類c中的所有 項(xiàng)目;計(jì)算所有K個(gè)聚類的相似度和
;計(jì)算聚類內(nèi)不同項(xiàng)目 作為聚類中心時(shí)的J值,按J值最大原則,選取J值最大的項(xiàng)目作為新的聚類中心,即以該 項(xiàng)目為聚類中心時(shí),J值最大;如果J值變大,則返回步驟2. 2),否則聚類結(jié)束。
[0086] 步驟3)具體為:
[0087] 3. 1)計(jì)算用戶之間的全局相似度,用戶u和用戶v在所有項(xiàng)目上的相似度 sim(u,v)通過余弦相似度計(jì)算,公式如下:
[0088]
[0089] 其中,1@表示用戶u和用戶v共同評(píng)分的項(xiàng)目集,I,表示用戶u有評(píng)分的項(xiàng)目集, 1¥表示用戶v有評(píng)分的項(xiàng)目集,ri表示用戶u對(duì)項(xiàng)目i的評(píng)分,ri表示用戶v對(duì)項(xiàng)目i 的評(píng)分;
[0090] 通過聚類的方式劃分用戶興趣,通過余弦相似度計(jì)算在每個(gè)聚類上用戶之間的相 似度sinf(u,v),公式如下:
[0091]
[0092] 其中,c表示項(xiàng)目i所在的聚類,I表示用戶u和用戶v在聚類c中共同評(píng)分的項(xiàng) 目集,< 表示用戶u在聚類c中有評(píng)分的項(xiàng)目集,?:表示用戶v在聚類c中有評(píng)分的項(xiàng)目 集,ru,廣示用戶u對(duì)項(xiàng)目i的評(píng)分,rv,i表示用戶ν對(duì)項(xiàng)目i的評(píng)分;
[0093] 3.2)選擇與目標(biāo)用戶在項(xiàng)目i所在的聚類c上相似度最大的前N個(gè)用戶作為目標(biāo) 用戶的局部最近鄰。
[0094] 步驟4)根據(jù)最近鄰對(duì)項(xiàng)目的評(píng)分預(yù)測(cè)目標(biāo)用戶對(duì)項(xiàng)目的評(píng)分,最近鄰為全局最 近鄰與局部最近鄰以相應(yīng)的權(quán)值進(jìn)行融合。
[0095] 基于用戶的全局最近鄰的預(yù)測(cè)評(píng)分公式如下:
[0096]
[0097] 其中,p' ^表示基于用戶的全局最近鄰的預(yù)測(cè)評(píng)分時(shí)用戶u對(duì)項(xiàng)目i的預(yù)測(cè) 評(píng)分,:?表示用戶U的平均評(píng)分,V表示用戶,neighborsu表示用戶u的全局最近鄰集合,sim(u,v)表示用戶u和用戶v的全局相似度,eUiV表示用戶u和用戶v的相似度相關(guān)加權(quán), rVil表示用戶u對(duì)項(xiàng)目i的實(shí)際評(píng)分,f表示用戶v的平均評(píng)分;相關(guān)加權(quán)公式如下:
[0098]
[0099] 其中,QUiV為用戶u和用戶v的共同評(píng)分?jǐn)?shù),T為預(yù)先設(shè)定的最近鄰共同評(píng)分?jǐn)?shù)閾 值。對(duì)目標(biāo)用戶u,選擇前N個(gè)sim(u,v)*eUiV最大的用戶作為最近鄰。
[0100] 基于用戶的局部最近鄰的預(yù)測(cè)評(píng)分公式如下:
[0101]
[0102] 其中,c表示項(xiàng)目i所在聚類,p" Uil表示基于用戶的局部最近鄰的評(píng)分計(jì)算得到 的用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分,^表示用戶u在聚類c上的平均評(píng)分,施表示用戶 u在聚類c上的局部最近鄰集合,simlu,ν)表示用戶u和用戶ν在聚類c上的局部相似度, rVil表示用戶v對(duì)項(xiàng)目i的實(shí)際評(píng)分,巧表示用戶v在