日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SVD矩阵分解

發(fā)布時(shí)間:2024/9/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SVD矩阵分解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么要對(duì)矩陣進(jìn)行分解

原始的矩陣表示數(shù)據(jù)最完整的信息,分解完之后,信息不就不完整了嗎?為什么要做矩陣分解?

假如有一批電商數(shù)據(jù),有一些用戶(hù)購(gòu)買(mǎi)了一些商品,假設(shè)100萬(wàn)用戶(hù),10萬(wàn)個(gè)商品。用矩陣表示則有100萬(wàn)*10萬(wàn)的維度 ,這是一個(gè)很大的矩陣,同時(shí)也是一個(gè)稀疏的矩陣,因?yàn)槊總€(gè)用戶(hù)不能買(mǎi)所有的商品。這么龐大的矩陣中,我們也無(wú)法提取出重點(diǎn)信息。

因此將這個(gè)大矩陣分解成多個(gè)小矩陣相乘。

基變換

基是正交的(即內(nèi)積為0,或者直觀(guān)說(shuō)相互垂直),并且基是線(xiàn)性無(wú)關(guān)的。假設(shè)如果y軸和x軸不是正交的,也就是不是垂直,夾角小于90度,意味著y可以由x來(lái)表示,x也可以由y來(lái)表示。

當(dāng)y與x垂直時(shí),y無(wú)法表示x,x也無(wú)法表示y

我們不希望一個(gè)指標(biāo)可以由另一個(gè)指標(biāo)來(lái)表示。一旦可以這么表示,那么另一個(gè)指標(biāo)存在的意義就不大了。

變換:數(shù)據(jù)與一個(gè)基做內(nèi)積運(yùn)算,結(jié)果作為第一個(gè)新的坐標(biāo)分量,然后與第二個(gè)基做內(nèi)積運(yùn)算,結(jié)果作為第二個(gè)新坐標(biāo)的分量。

特征值分解

矩陣?yán)锩嬗泻芏嘈畔?#xff0c;來(lái)分一分, A=UΛU?1A=U \Lambda U^{-1}A=UΛU?1,其中UUU表示特征向量矩陣,Λ\LambdaΛ表示特征值矩陣。AAA必須是n*n的方陣,且有n個(gè)線(xiàn)性無(wú)關(guān)的特征向量。

這時(shí)我們就可以在對(duì)角矩陣當(dāng)中找到比較大的了,他們就代表了主要信息。

SVD矩陣分解

上面提到的特征值分解不是挺好的嗎?但是它被限制住了,如果矩陣的形狀不是n*n的呢?而是m*n的形狀呢?

這時(shí)就需要使用SVD矩陣分解了。

首先選前k個(gè)的特征值(一般前10%的特征值的和就占了總體的90%)。Am?n=Um?kΛk?kVk?nA_{m*n}=U_{m*k}\Lambda_{k*k}V_{k*n}Am?n?=Um?k?Λk?k?Vk?n?,這樣就可以得到一個(gè)近似的矩陣,這個(gè)矩陣擁有與原矩陣差不多的信息,但是大小卻少了很多。

SVD推導(dǎo)

前提:對(duì)于一個(gè)二維矩陣M可以找到一組標(biāo)準(zhǔn)正交基v1v_1v1?v2v_2v2?使得Mv1Mv_1Mv1?Mv2Mv_2Mv2?是正交的。

使用另一組正交基u1u_1u1?u2u_2u2?來(lái)表示Mv1Mv_1Mv1?Mv2Mv_2Mv2?的方向。

其長(zhǎng)度分別為:∣Mv1∣=σ1|Mv_1|=\sigma_1Mv1?=σ1?,∣Mv2∣=σ2|Mv_2|=\sigma_2Mv2?=σ2?,可得: Mv1=σ1u1,Mv2=σ2u2Mv_1=\sigma_1u_1,Mv_2=\sigma_2u_2Mv1?=σ1?u1?,Mv2?=σ2?u2?

對(duì)于向量xxx在這組基中的表示:x=(v1?x)v1+(v2?x)v2x=(v_1 · x)v_1 + (v_2·x)v_2x=(v1??x)v1?+(v2??x)v2?,其中(v1?x)(v_1 · x)(v1??x)表示向量的點(diǎn)積,點(diǎn)積表示投影的長(zhǎng)度,可以通過(guò)投影到基的長(zhǎng)度乘以基的方向來(lái)表示一個(gè)點(diǎn)的坐標(biāo)。點(diǎn)積v?xv·xv?x也可以轉(zhuǎn)換成行向量乘列向量 v?x=vTxv·x=v^Txv?x=vTx

可得Mx=(v1?x)Mv1+(v2?x)Mv2,Mx=(v1?x)σ1u1+(v2?x)σ2u2Mx=(v_1·x)Mv_1 + (v_2·x)Mv_2,Mx=(v_1·x)\sigma_1u_1+(v_2·x)\sigma_2u_2Mx=(v1??x)Mv1?+(v2??x)Mv2?Mx=(v1??x)σ1?u1?+(v2??x)σ2?u2?,從而得到:Mx=u1σ1v1Tx+u2σ2v2Tx,M=u1σ1V1T+u2σ2v2TMx=u_1\sigma_1v_1^Tx+u_2\sigma_2v_2^Tx,M=u_1\sigma_1V_1^T+u_2\sigma_2v_2^TMx=u1?σ1?v1T?x+u2?σ2?v2T?xM=u1?σ1?V1T?+u2?σ2?v2T?,化簡(jiǎn)得到:M=U∑VTM=U\sum V^TM=UVT

總結(jié)

以上是生活随笔為你收集整理的SVD矩阵分解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。