奇異值分解(svd) 是線性代數(shù)中一種重要的矩陣分解

成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十年企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都1000多家客戶提供網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),同時(shí)也為不同行業(yè)的客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)。
在Python的numpy包里面直接調(diào)用
其中,u和v是都是標(biāo)準(zhǔn)正交基,問題是v得到的結(jié)果到底是轉(zhuǎn)置之后的呢,還是沒有轉(zhuǎn)置的呢,其實(shí)這個(gè)也很好驗(yàn)證,只要再把u,s,v在乘起來,如果結(jié)果還是A 那么就是轉(zhuǎn)置之后的,結(jié)果確實(shí)是這樣的,但是MATLAB卻與之不同,得到的v是沒有轉(zhuǎn)置過的
奇異值分解可以被用來計(jì)算矩陣的 偽逆 。若矩陣 M 的奇異值分解為
奇異值分解(Singular Value Decomposition,以下簡稱SVD)
是在機(jī)器學(xué)習(xí)領(lǐng)域廣泛應(yīng)用的算法,它不光可以用于 降維算法中的特征分解 ,還可以用于 推薦系統(tǒng) ,以及自然語言處理等領(lǐng)域。
優(yōu)點(diǎn): 簡化數(shù)據(jù),去除噪聲,提高算法的結(jié)果。
缺點(diǎn): 數(shù)據(jù)的轉(zhuǎn)換可能難以理解。
應(yīng)用領(lǐng)域: 推薦引擎(協(xié)同過濾、相似度計(jì)算)、圖像壓縮等。
SVD定義: 如果我們求出了矩陣A的n個(gè)特征值λ1≤λ2≤...≤λn,以及這n個(gè)特征值所對應(yīng)的特征向量{w1,w2,...wn},如果這n個(gè)特征向量線性無關(guān),那么矩陣A就可以用下式的特征分解表示:A=WΣW?1,其中W是這n個(gè)特征向量所張成的n×n維矩陣,而Σ為這n個(gè)特征值為主對角線的n×n維矩陣。一般我們會把W的這n個(gè)特征向量標(biāo)準(zhǔn)化,即滿足||wi||2=1, 或者wiTwi=1,此時(shí)W的n個(gè)特征向量為標(biāo)準(zhǔn)正交基,滿WTW=I,即WT=W?1, 也就是說W為酉矩陣。要進(jìn)行特征分解,矩陣A必須為方陣。那么如果A不是方陣,則用到SVD。
矩陣A的SVD為:A=UΣVT,其中U是一個(gè)m×m的矩陣,Σ是一個(gè)m×n的矩陣,除了主對角線上的元素以外全為0,主對角線上的每個(gè)元素都稱為奇異值,V是一個(gè)n×n的矩陣。U和V都是酉矩陣,即滿足UTU=I,VTV=I。
對于奇異值,它跟我們特征分解中的特征值類似,在奇異值矩陣中也是按照從大到小排列,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上的比例。也就是說,我們也可以用最大的k個(gè)的奇異值和對應(yīng)的左右奇異向量來近似描述矩陣。
因此SVD 也是一種強(qiáng)大的降維工具 ,可以利用 SVD 來逼近矩陣并從中獲得主要的特征。通過保留矩陣的 80%~90% 的能量,就可以得到重用的特征并去除噪聲。
推薦系統(tǒng) 是利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程。
主要有以下幾種推薦算法:
基于內(nèi)容的推薦(用到自然語言處理), 協(xié)同過濾(主流) ,基于規(guī)則推薦(基于最多用戶點(diǎn)擊,最多用戶瀏覽等),混合推薦(類似集成算法,投票決定),基于人口統(tǒng)計(jì)信息的推薦(根據(jù)用戶基本信息)
協(xié)同過濾推薦分為三種類型。 第一種是基于用戶(user-based)的協(xié)同過濾(需要在線找用戶和用戶之間的相似度關(guān)系),第二種是基于項(xiàng)目(item-based)的協(xié)同過濾(基于項(xiàng)目的協(xié)同過濾可以離線找物品和物品之間的相似度關(guān)系), 第三種是基于模型(model based)的協(xié)同過濾(用戶和物品,主流)。
一般在推薦系統(tǒng)中,數(shù)據(jù)往往是使用 用戶-物品 矩陣來表示的。 用戶對其接觸過的物品進(jìn)行評分,評分表示了用戶對于物品的喜愛程度,分?jǐn)?shù)越高,表示用戶越喜歡這個(gè)物品。而這個(gè)矩陣往往是稀疏的,空白項(xiàng)是用戶還未接觸到的物品,推薦系統(tǒng)的任務(wù)則是選擇其中的部分物品推薦給用戶。
對于這個(gè) 用戶-物品 矩陣,用已有的部分稀疏數(shù)據(jù)來預(yù)測那些空白的物品和數(shù)據(jù)之間的評分關(guān)系,找到最高評分的物品推薦給用戶。
具體基于模型的方法有:
用關(guān)聯(lián)算法做協(xié)同過濾(Apriori算法、FP Tree算法)
用聚類算法做協(xié)同過濾(針對基于用戶或者基于模型,Kmeans,DBSCAN)
用分類算法做協(xié)同過濾(設(shè)定評分閾值,高于推薦,低于不推薦,邏輯回歸和樸素貝葉斯,解釋性很強(qiáng))
用回歸算法做協(xié)同過濾(Ridge回歸,回歸樹)
用矩陣分解做協(xié)同過濾(由于傳統(tǒng)的奇異值分解SVD要求矩陣不能有缺失數(shù)據(jù),必須是稠密的,而用戶物品評分矩陣是一個(gè)典型的稀疏矩陣,主要是SVD的一些變種,比如FunkSVD,BiasSVD和SVD++。這些算法和傳統(tǒng)SVD的最大區(qū)別是不再要求將矩陣分解為UΣVT的形式,而變是兩個(gè)低秩矩陣PTQ的乘積形式。)
用神經(jīng)網(wǎng)絡(luò)做協(xié)同過濾(限制玻爾茲曼機(jī)RBM)
在 Python 的 numpy 中,linalg已經(jīng)實(shí)現(xiàn)了SVD
這兩個(gè)命令是完全不同的呀。
S=svd(A)表示對矩陣A進(jìn)行SVD分解,分解的結(jié)果是得到3個(gè)矩陣,如果返回值只有一個(gè),那么可以得到A的奇異值向量。
eig(A)表示求矩陣A的特征值。
所以區(qū)別就是,svd得到的是A的奇異值,eig得到的是A的特征值。
A'表示A的轉(zhuǎn)置矩陣,A'*A的n個(gè)非負(fù)特征值的平方根叫作矩陣A的奇異值。記為σi(A)。
希望可以幫助你,望采納!
根據(jù)你的實(shí)際需要,一般有兩種需要:
第一種是通過SVD進(jìn)行降維,那么SVD主題數(shù)可以設(shè)置的大一點(diǎn),如50-100,因?yàn)樾枰褂梅纸夂蟮木仃囎鳛樵~向量
另一種是進(jìn)行主題分析,此時(shí)應(yīng)該根據(jù)你數(shù)據(jù)集的情況預(yù)估計(jì)主題數(shù)目,大約設(shè)置10-20之間。
文章名稱:python與svd函數(shù),python SVD
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article46/dsiddhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)、ChatGPT、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)