• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    PCA算法在酒店推薦系統(tǒng)中的應用研究

    2019-01-06 02:19:22劉淑英鄒燕飛唐云凱李依橋趙子慧
    中國科技縱橫 2019年22期
    關鍵詞:機器學習降維

    劉淑英 鄒燕飛 唐云凱 李依橋 趙子慧

    摘 要:目前我們使用的酒店推薦系統(tǒng)中,會出現(xiàn)用戶評分數(shù)據(jù)極端稀疏,矩陣的稀疏性導致推薦算法在相似性計算時存在較大誤差,進而導致最近鄰居選擇的不準確,從而影響推薦質(zhì)量。針對此問題,我們通過對評分矩陣采用PCA降維的方法,降低評分矩陣的稀疏性,保留了最能代表用戶興趣的維數(shù),使得相似性計算更加準確,保證了最近鄰居選擇的準確性,從而提高了推薦質(zhì)量。

    關鍵詞:機器學習;PCA算法;酒店推薦系統(tǒng);降維

    中圖分類號:TP391.9 文獻標識碼:A 文章編號:1671-2064(2019)22-0051-02

    0 引言

    在信息技術和互聯(lián)網(wǎng)蓬勃發(fā)展的今天,大量的數(shù)據(jù)使人們從信息貧乏的時代走到了信息過載的時代,面對大量的信息,人們獲取到對自己有用的信息是非常慢[1]。因此,我們需要將信息進行過濾,找到有用的信息,從而使對數(shù)據(jù)的研究更加簡單方便,這樣過濾信息的能力就變成了評價一個系統(tǒng)的重要的條件[2]。PCA算法能夠?qū)崿F(xiàn)數(shù)據(jù)有效降維,并且可以利用特征值對原始指標進行分類,實現(xiàn)特征的準確提取。

    1 PCA算法

    PCA算法即主成分分析法(principal component analysis),用于數(shù)據(jù)降維,是以“信息”損失較小的為前提,將高維的數(shù)據(jù)轉(zhuǎn)換到低維,這樣就可以減小計算量[3]。它可以把一個確定事物的特征提取出來,舍掉沒有特點的特征值,提取事物的本質(zhì)因素,使復雜的問題簡單化。

    PCA算法的主旨思想就是通過對大量數(shù)據(jù)進行一系列的計算后,將高維度的數(shù)據(jù)降為低維度數(shù)據(jù),應用于無監(jiān)督學習。得到的低維將加快模型訓練的速度,低維特征具有更好的可視化特性。此外,數(shù)據(jù)降維將導致某些信息丟失。通常我們可以設置一個丟失閾值來控制信息丟失[4-5]。PCA算法的計算過程如下:

    設原始樣本集為X,其有m個樣本,每個樣本有n個特征維度,可以用式(1)表示為:

    (1)

    接下來,我們對每個特征去均值化(即均值零化),計算公式為:

    (2)

    然后,我們通過計算協(xié)方差矩陣,計算公式為:

    (3)

    將特征向量按特征值的大小排序,組成矩陣u=[u1 u2 … un],則特征向量u1為主特征向量(對應的特征值最大),u2為次特征向量,以此類推。對于特征值越大的特征向量,樣本集在該方向上的變化越大。對于由特征向量組成的矩陣我們稱為特征矩陣,特征矩陣是一個正交矩陣,即滿足uTu=uuT=I。

    PCA算法非常巧妙地利用協(xié)方差矩陣來計算出樣本集在不同方向上的分散程度,利用方差最大的方向作為樣本集的主方向。PCA算法為我們提供了一種處理大量數(shù)據(jù)便捷快速的方法,在這個信息過量,發(fā)展速度迅速的時代,可以為我們提高工作學習以及生活的效率。

    當樣本數(shù)據(jù)量大,維度高時,PCA算法是非常有效的一種降維方法,它能起到的作用有兩個:一個是節(jié)約存儲空間,當數(shù)據(jù)量過多時,通過減少減少幾個維度就可以節(jié)約很多空間;另一個是提供計算的速度,將數(shù)據(jù)降維后,無論是樣本數(shù)據(jù)訓練時,還有對新數(shù)據(jù)做出響應時,速度都會大幅提高。

    2 模型實現(xiàn)

    PCA算法的主要過程是首先構建一個示例矩陣通過使用樣本集和特性,然后利用樣本集,計算協(xié)方差矩陣,然后根據(jù)協(xié)方差矩陣的特征值和特征向量,并保留最大的前k個特征值的特征向量作為新維方向。將原始樣本集轉(zhuǎn)換為新的空間維度。

    2.1 數(shù)據(jù)的采集

    本文用到的樣本數(shù)據(jù)集為兩類,第一類樣本數(shù)據(jù)為行為100000,列為5。100000表示的是用戶的數(shù)量,5表示有5種類型的酒店。即100000用戶對酒店在5個維度的側重點的評分,這5個維度分別為用戶酒店的瀏覽量,訪客數(shù),下單數(shù),成交數(shù),成交金額。第二類樣本數(shù)據(jù)集為行為5,列為100。5表示樣本,100表示的是特征點,5個維度同樣代表的是瀏覽量,訪客數(shù),下單數(shù),成交數(shù),成交金額等。即第二類樣本數(shù)據(jù)集為100個酒店在5個維度的評分。

    使用矩陣運算,將兩類樣本數(shù)據(jù)集相乘,生成顧客對酒店的評分,其具體實現(xiàn)代碼為:

    hotelRating=pd.DataFrame(generators.dot(hotelcomp),index=[‘c%.6d%i for i in range(customerNum)],columns=[‘hotel_%.3d%j for j in range(100)]).astype(int)

    print(hotelRating)

    2.2 數(shù)據(jù)的預處理

    計算樣本集的平均值,再用樣本集減去平均值并且除以其標準差,最后將數(shù)據(jù)進行歸一化處理。其實現(xiàn)代碼為:

    def normalize(s):

    if s.std()>1e-6:

    return(s-s.mean())*s.std()**(-1)

    else:

    return (s-s.mean())

    hotelRating_norm=hotelRating.apply(normalize)

    2.3 模型訓練

    PCA算法的計算過程為:

    (1)數(shù)據(jù)中心化,去均值。

    (2)求解協(xié)方差矩陣。

    (3)利用特征值分解/奇異值分解,求解特征值以及特征向量。

    (4)利用特征向量構造投影矩陣。

    首先,計算協(xié)方差矩陣,然后進行奇異值分解,PCA算法就是對協(xié)方差矩陣做特征值分解,我們使用奇異值分解來分解矩陣。其具體實現(xiàn)代碼為:

    u,s,v=np.linalg.svd(hotelRating_norm_corr)

    print(‘u\n{}.format(u))

    在實現(xiàn)的過程中,我們使用奇異值分解矩陣,使用SVD分解特征值,降低問題復雜性,奇異值分解,就是將一個矩陣通過運算分解為三個矩陣。即A=U*S*V,其中U和V均是正交矩陣,S為對角矩陣。相對于PCA特征值分解,奇異值分解可處理的不只是協(xié)方差矩陣(方陣),還可以直接處理數(shù)據(jù)。

    然后通過對數(shù)據(jù)的描繪,最后得到特征值碎石圖,如圖1所示。

    根據(jù)碎石圖1可知,X軸為成分數(shù),Y軸為特征值,在第五個之后變得平緩,可得知我們可提取五個主成分,實現(xiàn)了PCA數(shù)據(jù)降維。

    最后我們進行獲取分類評分。根據(jù)分析協(xié)方差矩陣中100個樣本和100個特征點的相似度,找出與每個特征點相似的樣本,得到特征值。選出明顯大的前k個特征值,舍去小的特征值。我們可以通過樣本集特征提取最高的5個主成分。截取SVD維度來確定酒店相似度,具體實現(xiàn)代碼為:

    u_short=u[:,:5] ?v_short=v[:5,:] ?s_short=s[:5]

    print(‘u,s,v,short{}.format(u_short,v_short,s_short))

    該程序最終會得到一個行為100,列為5的矩陣,即100個酒店在前5個主特征值得評分。然后我們計算出指定酒店在各分類評分。首先獲取樣本集中的最高成分,與檢索出的30號酒店的用戶評分相乘。其具體實現(xiàn)代碼為:

    top_component=hotelRating_norm.dot(u_short).dot(np.diag(np.power(s_short,-0.5)))

    hotel_ind = 30

    rating=hotelRating_norm.loc[:,‘hotel_%.3d% hotel_ind]

    print ("classification of the dth hotel"hotel_ind,

    top_component.T.dot(rating)/customerNum)

    該程序的運行結果如圖2所示。

    根據(jù)圖2可以看出30號酒店與第1個分類評分最高,第3個分類的評分最低。用戶可以根據(jù)自身需求選擇是否入住30號酒店。

    3 結語

    通過用PCA算法實現(xiàn)簡單的酒店推薦系統(tǒng),在實際研究中,PCA算法是不能完全的到樣本集的分類的,還要結合SVD奇異值分解獲得樣本集的特征值。PCA算法非常巧妙地利用協(xié)方差矩陣來計算出樣本集在不同方向上的分散程度,利用方差最大的方向作為樣本集的主方向。通過對該PCA算法在酒店推薦系統(tǒng)中的應用研究,實驗結果表明:該酒店推薦算法具有較高的準確度和覆蓋度。

    參考文獻

    [1] Justiawan.Riyanto Sigit,Zainal Arief.Tooth Color Detection Using PCA and KNN Classifier Algorithm Based on Color Moment[J].Emitter:International Journal of Engineering Technology,2017,5(1):316-325.

    [2] Yan Wang.An Advanced AOI-Cast Algorithm Based on PCA[J].Advanced Materials Research,2014,3227(945):1-2.

    [3] 易旺.酒店搜索推薦的設計與分析[D].武漢:華中科技大學,2013.

    [4] 劉艷.基于協(xié)同過濾的酒店推薦系統(tǒng)研究與實現(xiàn)[D].成都:電子科技大學,2011.

    [5] 謝佩,吳小俊.分塊多線性主成分分析及其在人臉識別中的應用研究[J].計算機科學,2015,42(03):274-279.

    猜你喜歡
    機器學習降維
    Three-Body’s epic scale and fiercely guarded fanbase present challenges to adaptations
    混動成為降維打擊的實力 東風風神皓極
    車主之友(2022年4期)2022-08-27 00:57:12
    降維打擊
    海峽姐妹(2019年12期)2020-01-14 03:24:40
    基于詞典與機器學習的中文微博情感分析
    基于機器學習的圖像特征提取技術在圖像版權保護中的應用
    基于網(wǎng)絡搜索數(shù)據(jù)的平遙旅游客流量預測分析
    時代金融(2016年27期)2016-11-25 17:51:36
    前綴字母為特征在維吾爾語文本情感分類中的研究
    科教導刊(2016年26期)2016-11-15 20:19:33
    基于支持向量機的金融數(shù)據(jù)分析研究
    機器學習理論在高中自主學習中的應用
    一種改進的稀疏保持投影算法在高光譜數(shù)據(jù)降維中的應用
    会昌县| 开封县| 青龙| 邢台县| 正安县| 宾阳县| 峨眉山市| 额尔古纳市| 彰化市| 卫辉市| 洞口县| 平南县| 普宁市| 周口市| 武城县| 荔浦县| 中方县| 汨罗市| 陆丰市| 无棣县| 城固县| 柞水县| 平罗县| 巴楚县| 二手房| 柏乡县| 社旗县| 临汾市| 大庆市| 本溪市| 静海县| 景东| 榆中县| 新平| 博兴县| 陆河县| 乡城县| 封丘县| 二手房| 大洼县| 区。|