国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于用戶信息向量聚類和改進(jìn)SAMME的推薦算法

2021-07-27 02:59:54王杉文馬萬(wàn)民陳建林
關(guān)鍵詞:分類器聚類向量

王杉文,歐 鷗,馬萬(wàn)民,陳建林

(成都理工大學(xué)信息科學(xué)與技術(shù)學(xué)院(網(wǎng)絡(luò)安全學(xué)院),四川 成都 610051)

0 引 言

隨著互聯(lián)網(wǎng)日新月異發(fā)展,Web技術(shù)得到了廣泛的運(yùn)用,在線社交平臺(tái)得到了快速發(fā)展,各類平臺(tái)在推動(dòng)信息傳播方面起著重要作用[1]。據(jù)CNNIC發(fā)布的《第45次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》,截止到2020年3月,微信朋友圈、微博使用率較2018年底分別上漲1.7和0.2個(gè)百分點(diǎn);QQ空間使用率接近50%;過(guò)去的一年各類社交產(chǎn)品不斷創(chuàng)新,社交平臺(tái)助力社交公益,社交網(wǎng)絡(luò)持續(xù)發(fā)展[2]。在線社交平臺(tái)大量信息資源在為用戶提供各式各樣信息的同時(shí),對(duì)社交平臺(tái)的使用用戶搜索信息的能力與精力也提出了相應(yīng)的挑戰(zhàn),使得使用平臺(tái)的用戶不得不投入更多時(shí)間和精力來(lái)搜索其所需要的信息,尤其是在線社交平臺(tái)的核心是用戶交互,如何為用戶進(jìn)行有效的好友推薦是社交平臺(tái)增加用戶粘性的關(guān)鍵。因此社交平臺(tái)的個(gè)性化推薦對(duì)于提升社交平臺(tái)用戶體驗(yàn)、給用戶提供準(zhǔn)確好友推薦具有十分重要的現(xiàn)實(shí)意義。

在推薦系統(tǒng)中,用戶興趣的獲取是系統(tǒng)個(gè)性化推薦的關(guān)鍵,決定著最終推薦質(zhì)量的好壞。目前推薦系統(tǒng)分析數(shù)據(jù)的方式主要有2種,一種是可以通過(guò)使用矩陣進(jìn)行表示的數(shù)值型數(shù)據(jù),包括用戶對(duì)網(wǎng)頁(yè)的瀏覽次數(shù)、用戶對(duì)項(xiàng)目的評(píng)分、可用0和1表示的用戶對(duì)其他用戶的贊和踩等。另一種類型的數(shù)據(jù)是文本數(shù)據(jù),包括用戶的留言、評(píng)論、標(biāo)簽、背景信息等。根據(jù)實(shí)際情況對(duì)數(shù)據(jù)類型進(jìn)行分析。推薦技術(shù)大體上可以分為基于領(lǐng)域的協(xié)同過(guò)濾推薦技術(shù)、基于內(nèi)容的推薦技術(shù)以及混合推薦技術(shù)?;陬I(lǐng)域的協(xié)同過(guò)濾推薦技術(shù)主要是分析數(shù)值矩陣;基于內(nèi)容的推薦算法主要是分析文本數(shù)據(jù);本文采用的推薦算法是一種混合推薦算法,綜合了兩者的優(yōu)勢(shì),將用戶文本數(shù)據(jù)轉(zhuǎn)化為用戶向量進(jìn)而構(gòu)建矩陣數(shù)據(jù)進(jìn)行分析,提高推薦效果。

近年來(lái)在推薦系統(tǒng)領(lǐng)域,國(guó)內(nèi)外學(xué)者為提高推薦系統(tǒng)的質(zhì)量先后對(duì)傳統(tǒng)推薦算法嘗試了許多改進(jìn),做出了不同程度的研究。在用戶興趣與偏好挖掘方面,苑寧萍等[3]通過(guò)獲取用戶對(duì)社交活動(dòng)的興趣度得到用戶之間的綜合相似度并與用戶信任度結(jié)合進(jìn)行推薦。姚彬修等[4]基于微博平臺(tái)數(shù)據(jù)集的博文內(nèi)容、社交信息和交互關(guān)系等多源信息進(jìn)行相似度計(jì)算。但微博平臺(tái)的博文內(nèi)容長(zhǎng)度有限以至于通過(guò)該方法構(gòu)建的用戶特征向量并不能完全衡量用戶之間的相似度。黃賢英等[5]基于微博平臺(tái)從用戶標(biāo)簽中提取用戶興趣,對(duì)于沒(méi)有標(biāo)簽的用戶,則根據(jù)用戶性別、年齡和地點(diǎn)等構(gòu)件的用戶相似度提出了一種融合興趣的用戶相似度研究方法(BIBS)。Liu等[6]提出了一種在用戶評(píng)分很少時(shí),基于LDA模型考慮用戶評(píng)分的上下文信息,以此挖掘出用戶的全局偏好,進(jìn)行推薦。Yu等[7]提出了一種利用用戶之間共識(shí)達(dá)到向其他用戶推薦目的的高效角色推薦算法。

在大數(shù)據(jù)時(shí)代,隨著平臺(tái)用戶的數(shù)量增長(zhǎng),尋找和計(jì)算用戶之間的相似度所需時(shí)間越來(lái)越長(zhǎng),對(duì)用戶進(jìn)行推薦時(shí)系統(tǒng)的消耗產(chǎn)生了一定的挑戰(zhàn)。為提高推薦系統(tǒng)的可擴(kuò)展性、減少系統(tǒng)在線推薦消耗,融合機(jī)器學(xué)習(xí)思想的推薦算法也隨之誕生。目前主要的結(jié)合機(jī)器學(xué)習(xí)思想的推薦算法包括聚類模型[8]、矩陣分解[9]、貝葉斯網(wǎng)絡(luò)[10]等。楊尊琦等[11]用K-means聚類算法處理微博用戶數(shù)據(jù),將用戶關(guān)注的內(nèi)容分成不同類別,研究不同類別之間的相關(guān)性,揭示了不同內(nèi)容之間的相似性。Katarya等[12]提出了基于粒子群優(yōu)化技術(shù)優(yōu)化模糊C均值聚類算法對(duì)用戶聚類。王永貴等[13]通過(guò)花朵授粉優(yōu)化模糊聚類算法,增強(qiáng)了用戶聚類效果,提高了推薦準(zhǔn)確性。楊興雨等[14]使用隨機(jī)森林離線訓(xùn)練模型提高了在線推薦效率。范奧哲等[15]從用戶維度和項(xiàng)目維度分別聚類,提出了一種雙向聚類算法,提高推薦精度。Najafabadi等[16]將聚類技術(shù)用于關(guān)聯(lián)規(guī)則挖掘中,提高了關(guān)聯(lián)規(guī)則挖掘效率。Koohi等[17]將重心去模糊化模糊聚類和皮爾遜相關(guān)系數(shù)相結(jié)合提高了推薦準(zhǔn)確率。

上述文獻(xiàn)對(duì)獲取用戶信息以及推薦算法做出了不同程度的改進(jìn),引入機(jī)器學(xué)習(xí)思想的推薦算法能有效地提升推薦準(zhǔn)確率和減少推薦時(shí)間。本文提出一種基于用戶信息向量和改進(jìn)SAMME的推薦算法。本算法的優(yōu)點(diǎn)有:一是充分利用平臺(tái)用戶基本信息(地域、時(shí)間、興趣、標(biāo)簽等)進(jìn)行推薦,相較于傳統(tǒng)協(xié)同過(guò)濾推薦算法考慮更細(xì)致、全面;二是結(jié)合機(jī)器學(xué)習(xí)的方法,本算法可以離線訓(xùn)練保存模型,線上推薦時(shí)只需要調(diào)用模型即可,相較于傳統(tǒng)協(xié)同過(guò)濾節(jié)省了尋找用戶相似度的時(shí)間,大大提升了推薦效率。

1 相關(guān)研究

1.1 傳統(tǒng)方法

傳統(tǒng)協(xié)同過(guò)濾推薦算法是最為常見(jiàn)的推薦算法之一,廣泛運(yùn)用于各類電商平臺(tái)、社交平臺(tái)。其核心思想是找到和目標(biāo)用戶的興趣相似度較大的用戶集合,將用戶集合中的用戶關(guān)注的物品、人物等推薦給目標(biāo)用戶。運(yùn)用該思想誕生的算法有Jaccard相似度系數(shù)、余弦相似度、共同鄰居(Common Neighbors, CN)模型等,Jaccard相似度系數(shù)為:

(1)

余弦相似度為:

(2)

其中,給定用戶m和用戶n,wmn表示用戶之間的相似度,N(m)是用戶m給過(guò)的正反饋的物品集合,N(n)是用戶n給過(guò)的正反饋的物品集合。用戶相似度wmn越大,則表明2個(gè)用戶之間興趣相同程度越高。共同鄰居CN相似度計(jì)算:

(3)

其中,給定用戶m和用戶n,wmn表示用戶之間的相似度,CN(m)為用戶m關(guān)注的用戶集,CN(n)為用戶n關(guān)注的用戶集,當(dāng)用戶m、n共同關(guān)注的用戶集越大,則用戶m、n相似度越高。該類算法可以在一定程度上反映用戶之間的喜好,但由于該類算法完全忽略了用戶內(nèi)在的背景信息和潛在的興趣,實(shí)際推薦效果并不是很好。并且在計(jì)算相似度時(shí)會(huì)消耗大量時(shí)間,在線上推薦時(shí),用戶體驗(yàn)并不友好。

1.2 基于K-means算法聚類推薦功能研究

K-means是一種基于劃分、容易實(shí)現(xiàn)、收斂速度快的聚類算法,上述優(yōu)點(diǎn)使它在實(shí)際應(yīng)用中具有較強(qiáng)優(yōu)勢(shì),成為最廣泛運(yùn)用的聚類算法之一。楊尊琦等[11]使用K-means聚類算法處理微博用戶數(shù)據(jù),將用戶關(guān)注的內(nèi)容分成不同類別,研究不同類別之間的相關(guān)性,揭示不同內(nèi)容之間的相似性。研究結(jié)果表明,聚類之后可將用戶興趣分為不同類別,包括娛樂(lè)、體育、教育等,不同用戶可能關(guān)注多個(gè)不同的類別內(nèi)容,根據(jù)用戶關(guān)注的原因,不同類別的內(nèi)容之間存在某種聯(lián)系。實(shí)驗(yàn)表明,通過(guò)聚類分析挖掘出了用戶興趣之間的隱性關(guān)聯(lián),相關(guān)研究人員給后來(lái)推薦算法研究者提出建議:改進(jìn)推薦功能時(shí)可以通過(guò)改進(jìn)推薦算法,全面挖掘用戶信息,這樣給用戶進(jìn)行推薦時(shí)更人性化,推薦結(jié)果更好。

2 基于用戶信息向量聚類和SAMME的推薦算法

2.1 構(gòu)建用戶信息向量

微博用戶的信息包括地域、時(shí)間、標(biāo)簽、興趣等,傳統(tǒng)的推薦算法沒(méi)有完整地考慮用戶基本信息。本文從用戶基本信息中提取關(guān)鍵詞,構(gòu)建用戶信息向量進(jìn)行用戶好友推薦,彌補(bǔ)傳統(tǒng)推薦算法考慮不周的問(wèn)題。

根據(jù)用戶的基本信息獲取關(guān)鍵詞,構(gòu)建用戶的信息向量[(u1,w1),(u2,w2),(u3,w3),…,(un,wn)]。其中ui為用戶信息關(guān)鍵詞,wi為對(duì)應(yīng)關(guān)鍵詞的權(quán)重。文本中用戶關(guān)鍵詞權(quán)重基于TF-IDF詞頻-逆向文本頻率構(gòu)建。詞頻(Term Frequency, TF)一般指的是給定的某一個(gè)詞語(yǔ)在該文本中出現(xiàn)的次數(shù),該次數(shù)會(huì)被正則化避免偏向長(zhǎng)文本。在本算法中詞頻用于計(jì)算用戶關(guān)鍵詞在該用戶向量du中出現(xiàn)的次數(shù),結(jié)果同樣將會(huì)正則化,其公式為:

(4)

其中,分子ni,u表示該關(guān)鍵詞在該用戶信息向量中出現(xiàn)的次數(shù),分母表示該用戶信息向量中所有出現(xiàn)的關(guān)鍵詞總和。逆向文本頻率(Inverse Document Frequency, IDF)指關(guān)鍵詞普遍重要性的度量,某用戶信息關(guān)鍵詞在所有用戶信息中出現(xiàn)次數(shù)較低,則獲得較高的逆向文本頻率,其公式為:

(5)

其中,分子|U|表示所有用戶的所有關(guān)鍵詞總數(shù),一般稱之為語(yǔ)料庫(kù),分母表示含有關(guān)鍵詞tu的用戶個(gè)數(shù),為了防止語(yǔ)料庫(kù)中不存在該關(guān)鍵詞導(dǎo)致被除數(shù)為零,因此將分母加1。在用戶信息中某用戶信息關(guān)鍵詞有高詞頻,并且該關(guān)鍵詞在所有用戶信息中低頻率出現(xiàn),則獲得高權(quán)值的TF-IDF。其具體定義為:

TF-IDFi,u=TFi,u×IDFi

(6)

2.2 基于K-means的用戶信息向量聚類

聚類算法是對(duì)數(shù)據(jù)中的對(duì)象進(jìn)行分組,被分為同組的對(duì)象之間相似度高,而不同組的對(duì)象之間相似度低。常見(jiàn)聚類算法主要分為3類:基于劃分聚類、基于層次聚類、基于密度聚類。上述3類聚類算法中分別最常見(jiàn)的算法為:K-means算法[18]、BIRCH算法[19]、DBSCAN算法[20]。

K-means算法是最為經(jīng)典的聚類算法,其算法數(shù)學(xué)原理簡(jiǎn)單、易于理解、容易實(shí)現(xiàn)。本文采用K-means算法對(duì)用戶進(jìn)行聚類分析。具體聚類流程如下:

1)在用戶樣本集中隨機(jī)挑選k個(gè)樣本作為種子樣本,以這些種子樣本為聚類的初始中心。

2)分別計(jì)算其余樣本到種子樣本的距離,將樣本劃分到離種子樣本最近的簇中。

3)重新計(jì)算各個(gè)簇中所有樣本的均值,將新的均值作為新的聚類中心。

4)重復(fù)步驟2和步驟3,直到聚類中心不再變化或者達(dá)到循環(huán)次數(shù),形成最終的k個(gè)聚類。

5)將聚類最終的結(jié)果輸出。

圖1為K-means聚類流程圖。

圖1 K-means聚類流程圖

2.3 基于改進(jìn)SAMME的好友推薦

集成學(xué)習(xí)方法主要分為Bagging和Boosting這2種。Bagging的基本原理是從原始樣本集中根據(jù)均勻概率分布有放回的取值生成訓(xùn)練樣本,對(duì)于每一個(gè)抽樣生成的樣本集都訓(xùn)練出一個(gè)基礎(chǔ)分類器;對(duì)訓(xùn)練過(guò)的樣本進(jìn)行投票,將訓(xùn)練后的樣本指派到獲得投票最高的類中。Boosting方法是均勻取樣,根據(jù)錯(cuò)誤率不斷地調(diào)整樣例的權(quán)值,使得正確率高的分類器有更大的權(quán)值,能較好地降低偏差。AdaBoost是Boosting算法的一種,AdaBoost通過(guò)學(xué)習(xí),可對(duì)弱分類器賦予不同的權(quán)值,給予分類效果較好的弱分類器高權(quán)值,而給予分類效果較差的分類器低權(quán)值,通過(guò)迭代成為強(qiáng)分類器。AdaBoost算法示意圖如圖2所示。

圖2 AdaBoost算法示意圖

AdaBoost算法主要流程概括為:

1)初始化用戶樣本權(quán)重,將所有用戶權(quán)重設(shè)置為相等。

2)多次循環(huán)迭代弱分類器,每次循環(huán)中計(jì)算當(dāng)前弱分類器的誤差率,根據(jù)誤差率調(diào)整權(quán)重。如果用戶樣本被分類錯(cuò)誤,則用戶樣本的權(quán)值會(huì)增大,讓后面的弱分類器更加受關(guān)注。對(duì)于弱分類器而言其權(quán)重與正確率成正相關(guān)。

3)將多個(gè)弱分類器聚合成為強(qiáng)分類器,將誤差小的弱分類器設(shè)置為權(quán)重較大。

SAMME[21]將AdaBoost提升到多分類問(wèn)題上。SAMME弱分類器正確率要求從傳統(tǒng)的AdaBoost算法的1/2降到1/k,使得SAMME算法在多分類任務(wù)中能利用更多的弱分類器的計(jì)算結(jié)果。SAMME算法概念簡(jiǎn)單、容易實(shí)現(xiàn)且在實(shí)際分類任務(wù)中能找到足夠多的弱分類器。

但經(jīng)典SAMME算法的弱分類器要求的正確率大于1/k僅僅只是比隨機(jī)選取正確率高,并不能保證訓(xùn)練樣本中分類到正確分類的樣本數(shù)量大于分類到錯(cuò)誤分類的樣本數(shù)量。若在訓(xùn)練樣本中分類到某錯(cuò)誤分類的樣本的弱分類器比分類到正確樣本的分類器多,經(jīng)過(guò)組合形成最終強(qiáng)分類器后仍然會(huì)偏向分類錯(cuò)誤的分類器。因此本文中SAMME算法的弱分類器的正確率要求不僅要大于1/k,其分類正確率還要大于其余任意分類錯(cuò)誤的概率,以此提高弱分類器的正確率要求。但提高SAMME算法的弱分類器要求后,同樣數(shù)目的弱分類器訓(xùn)練下其最終起作用的弱分類器會(huì)減少,因此要達(dá)到最終起作用的弱分類器數(shù)目盡量不變的情況下得增加初始弱分類器數(shù)量,這樣會(huì)致使訓(xùn)練效率降低。因此本文在調(diào)整弱分類權(quán)重的時(shí)候引入學(xué)習(xí)率,通過(guò)設(shè)置學(xué)習(xí)率可以快速更新弱分類器權(quán)重。

給定m個(gè)用戶訓(xùn)練樣本為:

U={(x1,y1),(x2,y2),…,(xm,ym)}

(7)

其中,xi為用戶信息向量,yi為上文中通過(guò)K-means聚類后的用戶類別。本文算法過(guò)程如下:

1)初始化用戶訓(xùn)練數(shù)據(jù)權(quán)值分布。每一個(gè)用戶樣本數(shù)據(jù)在最開(kāi)始時(shí)被賦予相同的權(quán)值,則對(duì)于第j個(gè)弱分類器用戶樣本初始權(quán)值D(j)為:

D(j)=(wj1,wj2,…,wjn);w1i=1/m;i=1,2,…,m

(8)

2)Forj=1,2,…,J執(zhí)行以下步驟。J是弱分類器總數(shù)。

3)使用第j個(gè)弱分類器對(duì)用戶樣本進(jìn)行訓(xùn)練,并計(jì)算第j個(gè)弱分類器的分類正確率是否滿足要求,若不滿足則該弱分類器不參與后續(xù)計(jì)算。

4)計(jì)算第j個(gè)弱分類器的加權(quán)錯(cuò)誤率:

(9)

其中[Gj(xi)≠yi]取值為0或1,0表示分類正確,1表示分類錯(cuò)誤。

5)第j個(gè)弱分類器Gj(x)權(quán)重系數(shù)為:

(10)

其中,L是學(xué)習(xí)率,R是K-means聚類后用戶樣本分類總數(shù)。容易看出,當(dāng)誤差率ej減小的時(shí)候aj增大,因此誤差率越小的分類器的權(quán)值越大。

6)樣本權(quán)重更新過(guò)程如下:

(11)

其中Zj是規(guī)范化因子,主要作用是將wji的值規(guī)范到0-1之間。從公式(11)不難看出當(dāng)分類正確時(shí)wj+1,i取值較小,分類錯(cuò)誤時(shí)wj+1,i取值較大。分類錯(cuò)誤權(quán)重較大的樣本在之后的弱分類器中會(huì)得到更多的重視。

7)最終強(qiáng)分類器:

(12)

最終強(qiáng)分類器表示為所有弱分類器模組的整合。其中,aj是第j個(gè)弱分類器權(quán)重,J為弱分類器總數(shù)。整個(gè)訓(xùn)練過(guò)程為離線訓(xùn)練,訓(xùn)練結(jié)束后將最終訓(xùn)練出的強(qiáng)分類器模型進(jìn)行保存。在線推薦時(shí)只需導(dǎo)入離線訓(xùn)練后的模型進(jìn)行預(yù)測(cè)推薦,這個(gè)過(guò)程耗時(shí)遠(yuǎn)小于傳統(tǒng)方法計(jì)算用戶相似度。

3 實(shí)驗(yàn)與分析

3.1 實(shí)驗(yàn)數(shù)據(jù)與評(píng)價(jià)標(biāo)準(zhǔn)

本文實(shí)驗(yàn)所使用的數(shù)據(jù)集是新浪微博數(shù)據(jù)集MicroblogPCU,官方下載地址:https://archive.ics.uci.edu/ml/datasets/microblogPCU。該數(shù)據(jù)集中主要分為weibo_user.csv、user_post.csv、follower_followee.csv。weibo_user.csv存儲(chǔ)用戶ID、昵稱、性別、地域、標(biāo)簽等基本信息,user_post.csv存儲(chǔ)用戶微博內(nèi)容,follower_followee.csv存儲(chǔ)用戶之間相互關(guān)注的關(guān)系。該數(shù)據(jù)集中包含59191個(gè)用戶,超10萬(wàn)條用戶相互關(guān)注信息。在所有用戶中781位用戶包含基本信息,有268位用戶有標(biāo)簽,標(biāo)簽中包含強(qiáng)烈的個(gè)性化信息。本文算法先提取含有標(biāo)簽的268位用戶的基本信息,構(gòu)建用戶信息向量,使用K-means進(jìn)行聚類,為改進(jìn)SAMME算法提供初始訓(xùn)練數(shù)據(jù)。再對(duì)其余擁有基本信息的用戶構(gòu)建用戶信息向量,使用改進(jìn)SAMME算法訓(xùn)練后模型進(jìn)行分類推薦。在聚類之后的具體推薦實(shí)驗(yàn)過(guò)程中,對(duì)于沒(méi)有任何基本信息的用戶數(shù)據(jù)不予以考慮,重點(diǎn)關(guān)注781位有基本信息的用戶,該781位用戶之間有6630條相互關(guān)注數(shù)據(jù)。最后選取有基本信息的90名用戶及其關(guān)注用戶數(shù)據(jù)作為測(cè)試集進(jìn)行算法評(píng)測(cè),驗(yàn)證算法可行性。

推薦最終效果評(píng)價(jià)指標(biāo)使用準(zhǔn)確率(precision)、召回率(recall)、綜合值(F)。準(zhǔn)確率定義為:

(13)

其中,R(u)為給用戶推薦的用戶集合,T(u)為用戶關(guān)注的用戶集合。準(zhǔn)確率表示準(zhǔn)確推薦的用戶集合基數(shù)與所有推薦的用戶集合基數(shù)的比值。準(zhǔn)確率(precision)越高則推薦結(jié)果越精確。召回率定義為:

(14)

其中,R(u)為給用戶推薦的用戶集合,T(u)為用戶關(guān)注的用戶集合。召回率表示準(zhǔn)確推薦的用戶集合基數(shù)與用戶本身關(guān)注的用戶集合基數(shù)的比值。召回率(recall)越高推薦給用戶的覆蓋面積越大。綜合值定義為:

(15)

綜合值F用于平衡召回率和準(zhǔn)確率,使其同樣重要。綜合值F越高推薦效果越好。

3.2 實(shí)驗(yàn)過(guò)程與結(jié)果分析

觀察下載好的微博用戶數(shù)據(jù)集不難發(fā)現(xiàn),用戶的ID信息存儲(chǔ)在user.csv的user_id字段,昵稱信息存儲(chǔ)在user_name字段、性別信息存儲(chǔ)在gender字段。用戶的其余基本信息都存儲(chǔ)在user.csv文件的message字段中,其存儲(chǔ)順序依次為:用戶等級(jí)Lv、居住地域、畢業(yè)學(xué)校、任職公司、出生日期、簡(jiǎn)介、個(gè)性域名、博客地址、標(biāo)簽。message字段中的所有信息以空格隔開(kāi),最后一個(gè)為標(biāo)簽信息。雖然在數(shù)據(jù)集中大部分用戶的message字段實(shí)際存儲(chǔ)的信息只含有上述message字段信息中的一部分,但該message字段中大部分信息均有固定格式用于提示,比如畢業(yè)學(xué)校信息前會(huì)有“畢業(yè)于”這3個(gè)字,標(biāo)簽信息前會(huì)有“標(biāo)簽”2個(gè)字??蓪ⅰ爱厴I(yè)于”“標(biāo)簽”等后面的詞作為關(guān)鍵詞提取。將user.csv文件讀取成DataFrame,清洗掉其中的亂碼數(shù)據(jù),然后根據(jù)上述數(shù)據(jù)存儲(chǔ)的規(guī)律和格式提取用戶信息關(guān)鍵詞,使用TF-IDF構(gòu)建用戶信息向量。并將有標(biāo)簽的268位用戶單獨(dú)提取出來(lái),使用K-means進(jìn)行聚類。K-means聚類后的效果使用CH分?jǐn)?shù)進(jìn)行評(píng)價(jià),CH分?jǐn)?shù)的計(jì)算公式如下:

(16)

其中,n為聚類數(shù)目,k為當(dāng)前聚類,trB(k)為類間離差矩陣的跡,trW(k)為類內(nèi)離差矩陣的跡。得分值越大代表類內(nèi)越緊密,類間越分散,效果越好。聚類結(jié)果如圖3所示,可以看到,本文算法和文獻(xiàn)[5]算法都隨著聚類數(shù)k的增加,聚類分?jǐn)?shù)總體趨勢(shì)趨于逐漸下降,最后逐漸穩(wěn)定,本文聚類效果總體好于文獻(xiàn)[5]算法的聚類效果。但聚類數(shù)過(guò)少會(huì)導(dǎo)致推薦準(zhǔn)確度下降,經(jīng)過(guò)權(quán)衡與多次實(shí)驗(yàn),本文最終選取聚類數(shù)k為10。

圖3 聚類效果CH值

本文推薦結(jié)果將與CN算法、文獻(xiàn)[5]提出的綜合用戶興趣相似與背景相似的計(jì)算方法(BIBS)、經(jīng)典SAMME算法在相同數(shù)據(jù)集上進(jìn)行對(duì)比。在實(shí)驗(yàn)過(guò)程中推薦人數(shù)分別選取5、10、15、20、25這5種情況,可以看出,本文的推薦算法在不同推薦個(gè)數(shù)時(shí)的推薦指標(biāo)明顯好于其他2種推薦算法,說(shuō)明該算法取得了較好的推薦效果。圖4為3種推薦算法在微博用戶數(shù)據(jù)集上的準(zhǔn)確率,可以看出,隨著推薦人數(shù)的增加3種算法的推薦準(zhǔn)確率均在逐漸下降,本文推薦算法的推薦準(zhǔn)確率相較于經(jīng)典SAMME算法、文獻(xiàn)[5]算法和傳統(tǒng)CN算法分別提升了約3.2%、7.2%、14.9%。圖5為3種算法在微博用戶數(shù)據(jù)集上的召回率,可以看出,隨著推薦人數(shù)的增加3種算法的召回率均在逐步上升,本文推薦算法的推薦召回率相較于經(jīng)典SAMME算法、文獻(xiàn)[5]算法和傳統(tǒng)CN算法分別提升了約4.3%、7.4%、13.2%。3種算法的F值如圖6所示,可以看出,本文算法最有效,F(xiàn)值最高,F(xiàn)值相較于經(jīng)典SAMME算法、文獻(xiàn)[5]算法和傳統(tǒng)CN算法分別提升了3.3%、6.4%、12.9%。綜上所述,本文基于用戶信息向量和改進(jìn)SAMEE推薦算法優(yōu)于其他對(duì)比算法。

圖4 準(zhǔn)確率

圖5 召回率

圖6 F值

本文算法在不同推薦人數(shù)下的詳細(xì)推薦效果數(shù)據(jù)如表1所示。

表1 本文算法在不同推薦人數(shù)下的推薦效果

在對(duì)該用戶進(jìn)行推薦時(shí),對(duì)本文算法和對(duì)比算法推薦耗時(shí)進(jìn)行統(tǒng)計(jì),結(jié)果如圖7所示。隨著推薦人數(shù)的增加,文獻(xiàn)[5]算法和CN算法的推薦所需時(shí)間均在緩慢地增加。而經(jīng)典SAMME算法和本文算法的推薦所需時(shí)間幾乎不受影響,推薦時(shí)長(zhǎng)遠(yuǎn)遠(yuǎn)小于其余對(duì)比算法。其原因是經(jīng)典SAMME算法與本文算法進(jìn)行推薦時(shí)無(wú)需實(shí)時(shí)進(jìn)行用戶相似度計(jì)算,只需根據(jù)SAMME算法事先訓(xùn)練出的模型得到的規(guī)則進(jìn)行推薦即可。

圖7 推薦耗時(shí)

4 結(jié)束語(yǔ)

本文提出了一種基于用戶信息向量聚類和改進(jìn)SAMME的推薦算法,充分利用用戶基本信息,在線推薦時(shí)只需要調(diào)用離線時(shí)訓(xùn)練出的SAMME模型進(jìn)行預(yù)測(cè),而不需要像傳統(tǒng)的基于協(xié)同過(guò)濾推薦算法那樣去在線查找相似度最近的用戶,因此大大提高了推薦效率。最后在真實(shí)公開(kāi)的新浪微博數(shù)據(jù)集上通過(guò)實(shí)驗(yàn)驗(yàn)證了該模型的有效性。實(shí)驗(yàn)結(jié)果顯示與其他主流的推薦算法相比較,本文算法在準(zhǔn)確率、召回率、F值方面都有所提升,能進(jìn)一步提高推薦質(zhì)量。

猜你喜歡
分類器聚類向量
向量的分解
聚焦“向量與三角”創(chuàng)新題
BP-GA光照分類器在車道線識(shí)別中的應(yīng)用
基于DBSACN聚類算法的XML文檔聚類
加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機(jī)的TSK分類器
向量垂直在解析幾何中的應(yīng)用
基于改進(jìn)的遺傳算法的模糊聚類算法
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
一種層次初始的聚類個(gè)數(shù)自適應(yīng)的聚類方法研究
东港市| 嘉禾县| 巴林左旗| 邢台县| 大安市| 偏关县| 富蕴县| 禄劝| 中方县| 黄大仙区| 屯昌县| 台中县| 五常市| 高邑县| 夏津县| 明星| 金坛市| 海门市| 通化市| 霸州市| 察哈| 博罗县| 宁城县| 开封市| 东乡县| 杭锦后旗| 贵州省| 阿坝| 台北县| 宁津县| 卢龙县| 饶河县| 凌云县| 邢台县| 同江市| 通河县| 开化县| 石狮市| 大名县| 子长县| 易门县|