版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)挖掘:維度約簡:奇異值分解SVD及其在維度約簡中的應(yīng)用1數(shù)據(jù)挖掘與維度約簡的重要性在數(shù)據(jù)挖掘領(lǐng)域,我們經(jīng)常處理包含大量特征的數(shù)據(jù)集。這些特征,或稱為維度,可能包括各種測量、屬性或變量。然而,高維度數(shù)據(jù)不僅增加了計(jì)算的復(fù)雜性,還可能導(dǎo)致模型的過擬合,即模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,但在未見過的數(shù)據(jù)上表現(xiàn)不佳。此外,高維度數(shù)據(jù)可能包含冗余信息,即某些特征之間存在高度相關(guān)性,這并不利于模型的解釋性和效率。維度約簡技術(shù)旨在減少數(shù)據(jù)的維度,同時(shí)保留數(shù)據(jù)集中的關(guān)鍵信息。這不僅可以加速數(shù)據(jù)處理和模型訓(xùn)練的速度,還能幫助我們更好地理解數(shù)據(jù)的內(nèi)在結(jié)構(gòu)。奇異值分解(SVD)是維度約簡中一種非常強(qiáng)大的工具,它在許多領(lǐng)域,如推薦系統(tǒng)、圖像壓縮和文本分析中,都有廣泛的應(yīng)用。1.1奇異值分解SVD簡介1.1.1原理奇異值分解是一種矩陣分解技術(shù),它將一個(gè)矩陣分解為三個(gè)矩陣的乘積。對(duì)于任何給定的矩陣A,其大小為m×n,SVDA其中:-U是一個(gè)m×m的正交矩陣,其列向量是A的左奇異向量。-Σ是一個(gè)m×n的對(duì)角矩陣,其對(duì)角線上的元素是A的奇異值,通常按降序排列。-V是一個(gè)n1.1.2應(yīng)用在維度約簡中,SVD可以用于提取數(shù)據(jù)的主要成分,從而降低數(shù)據(jù)的維度。通過保留Σ中的前k個(gè)最大的奇異值,我們可以得到一個(gè)低秩近似矩陣,這通常能保留原始數(shù)據(jù)的大部分信息,同時(shí)減少維度。1.1.3示例假設(shè)我們有一個(gè)用戶-電影評(píng)分矩陣,其中行代表用戶,列代表電影,矩陣中的每個(gè)元素表示用戶對(duì)電影的評(píng)分。我們可以使用SVD來發(fā)現(xiàn)用戶和電影之間的潛在關(guān)聯(lián),從而降低矩陣的維度。importnumpyasnp
fromscipy.linalgimportsvd
#創(chuàng)建一個(gè)用戶-電影評(píng)分矩陣
ratings=np.array([
[5,3,0,1],
[4,0,0,1],
[1,1,0,5],
[1,0,0,4],
[0,1,5,4],
])
#使用SVD分解矩陣
U,sigma,VT=svd(ratings,full_matrices=False)
#保留前k個(gè)奇異值,構(gòu)建低秩近似矩陣
k=2
S=np.diag(sigma[:k])
U_k=U[:,:k]
V_k=VT[:k,:]
#低秩近似矩陣
A_approx=U_k@S@V_k
#打印低秩近似矩陣
print("低秩近似矩陣:")
print(A_approx)在這個(gè)例子中,我們使用了SVD來分解一個(gè)用戶-電影評(píng)分矩陣,并保留了前兩個(gè)最大的奇異值來構(gòu)建低秩近似矩陣。這可以用于推薦系統(tǒng)中,通過分析用戶和電影之間的潛在關(guān)聯(lián),為用戶推薦他們可能喜歡的電影。1.1.4結(jié)論通過使用SVD進(jìn)行維度約簡,我們可以有效地處理高維度數(shù)據(jù),減少計(jì)算復(fù)雜性,避免過擬合,并提高模型的解釋性和效率。SVD是數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)中一個(gè)不可或缺的工具,它在多個(gè)領(lǐng)域都有廣泛的應(yīng)用。2奇異值分解SVD原理2.1矩陣的奇異值分解定義奇異值分解(SingularValueDecomposition,SVD)是一種矩陣分解技術(shù),廣泛應(yīng)用于線性代數(shù)、信號(hào)處理、統(tǒng)計(jì)學(xué)和數(shù)據(jù)挖掘等領(lǐng)域。對(duì)于任何大小為m×n的矩陣A,SVD可以將其分解為三個(gè)矩陣的乘積:A其中:-U是一個(gè)m×m的正交矩陣,其列向量是A的左奇異向量。-Σ是一個(gè)m×n的對(duì)角矩陣,對(duì)角線上的元素是A的奇異值,通常按降序排列。-V是一個(gè)n×n的正交矩陣,其列向量是A的右奇異向量。2.1.1示例代碼假設(shè)我們有一個(gè)3×2的矩陣A,我們將使用Python的NumPy庫來執(zhí)行SVD。importnumpyasnp
#定義矩陣A
A=np.array([[1,2],
[3,4],
[5,6]])
#執(zhí)行SVD
U,S,VT=np.linalg.svd(A)
#打印結(jié)果
print("U:\n",U)
print("SingularValues:\n",S)
print("V^T:\n",VT)2.2SVD的數(shù)學(xué)推導(dǎo)SVD的數(shù)學(xué)推導(dǎo)基于矩陣的特征值分解和譜定理。對(duì)于一個(gè)m×n的矩陣A,我們首先考慮其轉(zhuǎn)置矩陣AT與A的乘積ATA和A與A對(duì)于AT對(duì)于AA矩陣ATA和2.2.1示例代碼下面的代碼展示了如何通過計(jì)算ATA和importnumpyasnp
#定義矩陣A
A=np.array([[1,2],
[3,4],
[5,6]])
#計(jì)算A^TA
ATA=np.dot(A.T,A)
#計(jì)算特征值和特征向量
eigenvalues_V,eigenvectors_V=np.linalg.eig(ATA)
#計(jì)算AA^T
AAT=np.dot(A,A.T)
#計(jì)算特征值和特征向量
eigenvalues_U,eigenvectors_U=np.linalg.eig(AAT)
#計(jì)算奇異值
S=np.sqrt(eigenvalues_U)
#構(gòu)建U,Σ,V^T
U=eigenvectors_U
Σ=np.diag(S)
VT=eigenvectors_V.T
#打印結(jié)果
print("U:\n",U)
print("SingularValues:\n",S)
print("V^T:\n",VT)2.3SVD的性質(zhì)與應(yīng)用2.3.1性質(zhì)穩(wěn)定性:SVD對(duì)矩陣的數(shù)值穩(wěn)定性有很好的表現(xiàn),即使矩陣接近奇異,SVD也能提供準(zhǔn)確的分解。唯一性:對(duì)于非零矩陣A,其SVD分解是唯一的,除非奇異值有重復(fù)。對(duì)稱性:如果A是對(duì)稱矩陣,那么U=2.3.2應(yīng)用數(shù)據(jù)壓縮:通過保留矩陣A的前k個(gè)最大的奇異值及其對(duì)應(yīng)的奇異向量,可以近似矩陣A,從而實(shí)現(xiàn)數(shù)據(jù)壓縮。主成分分析(PCA):SVD可以用于PCA,通過降維來簡化數(shù)據(jù)集,同時(shí)保留數(shù)據(jù)的大部分信息。圖像處理:在圖像壓縮和增強(qiáng)中,SVD可以用于去除圖像中的噪聲,同時(shí)保持圖像的關(guān)鍵特征。2.3.3示例代碼:數(shù)據(jù)壓縮假設(shè)我們有一個(gè)表示圖像的矩陣A,我們將使用SVD來壓縮圖像。importnumpyasnp
importmatplotlib.pyplotasplt
#加載圖像
image=plt.imread('path_to_your_image.jpg')
#轉(zhuǎn)換為灰度圖像
gray_image=np.dot(image[...,:3],[0.2989,0.5870,0.1140])
#執(zhí)行SVD
U,S,VT=np.linalg.svd(gray_image)
#保留前k個(gè)奇異值
k=50
Σ_k=np.diag(S[:k])
U_k=U[:,:k]
VT_k=VT[:k,:]
#重建圖像
compressed_image=np.dot(np.dot(U_k,Σ_k),VT_k)
#顯示原始圖像和壓縮后的圖像
plt.figure(figsize=(12,6))
plt.subplot(1,2,1)
plt.imshow(gray_image,cmap='gray')
plt.title('OriginalImage')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(compressed_image,cmap='gray')
plt.title('CompressedImage')
plt.axis('off')
plt.show()通過上述代碼,我們可以看到,即使只保留了原始圖像的一部分信息,壓縮后的圖像仍然保持了大部分的視覺特征,這展示了SVD在數(shù)據(jù)壓縮方面的強(qiáng)大能力。3SVD在維度約簡中的應(yīng)用3.1主成分分析PCA與SVD的關(guān)系3.1.1原理主成分分析(PCA)是一種廣泛使用的維度約簡技術(shù),它通過線性變換將原始數(shù)據(jù)轉(zhuǎn)換到一個(gè)新的坐標(biāo)系統(tǒng)中,使得數(shù)據(jù)在新坐標(biāo)軸上的方差最大化。PCA的目標(biāo)是找到數(shù)據(jù)的主成分,即數(shù)據(jù)的線性組合,這些組合能夠以最小的信息損失來表示原始數(shù)據(jù)。奇異值分解(SVD)是一種矩陣分解方法,可以將任何矩陣分解為三個(gè)矩陣的乘積。對(duì)于PCA而言,SVD提供了一種計(jì)算主成分的有效方式。當(dāng)數(shù)據(jù)矩陣是零均值時(shí),SVD可以直接應(yīng)用于數(shù)據(jù)矩陣,其結(jié)果中的左奇異向量即為PCA的主成分。3.1.2示例代碼假設(shè)我們有一個(gè)零均值的數(shù)據(jù)矩陣X,我們可以通過以下Python代碼使用SVD來計(jì)算PCA的主成分:importnumpyasnp
#假設(shè)X是一個(gè)零均值的數(shù)據(jù)矩陣,m行n列
X=np.random.rand(100,5)-0.5
#使用SVD計(jì)算PCA
U,S,Vt=np.linalg.svd(X,full_matrices=False)
#U的列向量即為PCA的主成分
principal_components=U3.2使用SVD進(jìn)行數(shù)據(jù)壓縮3.2.1原理SVD不僅可以用于維度約簡,還可以用于數(shù)據(jù)壓縮。通過保留SVD分解后的矩陣中最重要的奇異值和對(duì)應(yīng)的奇異向量,我們可以近似原始矩陣,從而達(dá)到壓縮數(shù)據(jù)的目的。這種壓縮方法通常用于圖像壓縮,因?yàn)樗梢员A魣D像的主要特征,同時(shí)減少存儲(chǔ)空間。3.2.2示例代碼以下是一個(gè)使用SVD進(jìn)行數(shù)據(jù)壓縮的Python示例,假設(shè)我們有一個(gè)圖像矩陣img:importnumpyasnp
importmatplotlib.pyplotasplt
#假設(shè)img是一個(gè)圖像矩陣,m行n列
img=plt.imread('path_to_your_image.png')
#使用SVD分解圖像矩陣
U,S,Vt=np.linalg.svd(img,full_matrices=False)
#保留前k個(gè)奇異值和對(duì)應(yīng)的奇異向量進(jìn)行近似
k=50
S_k=np.zeros_like(S)
S_k[:k]=S[:k]
U_k=U[:,:k]
Vt_k=Vt[:k,:]
#重建圖像
img_compressed=np.dot(U_k,np.dot(np.diag(S_k),Vt_k))
#顯示原始圖像和壓縮后的圖像
plt.subplot(1,2,1)
plt.imshow(img)
plt.title('原始圖像')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(img_compressed)
plt.title('壓縮后的圖像')
plt.axis('off')
plt.show()3.3SVD在推薦系統(tǒng)中的應(yīng)用3.3.1原理在推薦系統(tǒng)中,SVD可以用于用戶-項(xiàng)目評(píng)分矩陣的分解,從而發(fā)現(xiàn)用戶和項(xiàng)目之間的潛在關(guān)聯(lián)。通過分解評(píng)分矩陣,我們可以得到用戶和項(xiàng)目的低維表示,這些表示可以用于預(yù)測用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分,從而實(shí)現(xiàn)個(gè)性化推薦。3.3.2示例代碼假設(shè)我們有一個(gè)用戶-項(xiàng)目評(píng)分矩陣ratings,我們可以通過以下Python代碼使用SVD來分解這個(gè)矩陣,并預(yù)測用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分:importnumpyasnp
#假設(shè)ratings是一個(gè)用戶-項(xiàng)目評(píng)分矩陣,m行n列
ratings=np.random.randint(1,5,size=(100,50))
#使用SVD分解評(píng)分矩陣
U,S,Vt=np.linalg.svd(ratings)
#保留前k個(gè)奇異值和對(duì)應(yīng)的奇異向量進(jìn)行近似
k=10
S_k=np.diag(S[:k])
U_k=U[:,:k]
Vt_k=Vt[:k,:]
#重建評(píng)分矩陣
ratings_approx=np.dot(U_k,np.dot(S_k,Vt_k))
#預(yù)測用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分
#假設(shè)用戶0未對(duì)項(xiàng)目10評(píng)分
user_id=0
project_id=10
predicted_rating=ratings_approx[user_id,project_id]
print(f'用戶{user_id}對(duì)項(xiàng)目{project_id}的預(yù)測評(píng)分是:{predicted_rating}')以上代碼中,我們首先生成了一個(gè)隨機(jī)的用戶-項(xiàng)目評(píng)分矩陣ratings,然后使用SVD對(duì)其進(jìn)行分解。通過保留前k個(gè)奇異值和對(duì)應(yīng)的奇異向量,我們近似了評(píng)分矩陣。最后,我們預(yù)測了用戶0對(duì)項(xiàng)目10的評(píng)分,這個(gè)評(píng)分在原始矩陣中是未知的。通過SVD的近似矩陣,我們可以得到一個(gè)預(yù)測值。4數(shù)據(jù)挖掘:維度約簡:奇異值分解SVD及其在維度約簡中的應(yīng)用4.1SVD的計(jì)算方法奇異值分解(SingularValueDecomposition,SVD)是一種矩陣分解技術(shù),廣泛應(yīng)用于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)中,特別是在高維數(shù)據(jù)的維度約簡方面。SVD可以將一個(gè)矩陣分解為三個(gè)矩陣的乘積,即:A其中,A是原始矩陣,U和V是正交矩陣,Σ是一個(gè)對(duì)角矩陣,其對(duì)角線上的元素是A的奇異值。4.1.1原理SVD的計(jì)算基于矩陣的特征值和特征向量。對(duì)于任何矩陣A,其SVD分解的目標(biāo)是找到一組正交基,使得A在這些基下的表示為對(duì)角矩陣。具體步驟如下:計(jì)算ATA和AAT的特征值和特征向量:ATA的特征向量構(gòu)成V,其特征值的平方根構(gòu)成排序奇異值:將Σ的對(duì)角線元素按從大到小排序,這通常意味著保留最重要的信息。構(gòu)建U、Σ和V矩陣:根據(jù)計(jì)算出的特征向量和奇異值構(gòu)建這三個(gè)矩陣。4.1.2代碼示例在Python中,可以使用numpy.linalg.svd函數(shù)來計(jì)算SVD。importnumpyasnp
#創(chuàng)建一個(gè)示例矩陣
A=np.array([[1,2],[3,4],[5,6]])
#計(jì)算SVD
U,sigma,VT=np.linalg.svd(A,full_matrices=False)
#構(gòu)建對(duì)角矩陣Sigma
Sigma=np.diag(sigma)
#打印分解結(jié)果
print("U:\n",U)
print("Sigma:\n",Sigma)
print("V^T:\n",VT)
#驗(yàn)證分解結(jié)果
A_reconstructed=U@Sigma@VT
print("ReconstructedA:\n",A_reconstructed)4.2Python中使用SVD的實(shí)例4.2.1數(shù)據(jù)樣例假設(shè)我們有一組用戶對(duì)電影的評(píng)分?jǐn)?shù)據(jù),如下所示:用戶電影1電影2電影3電影4153422435132345413544.2.2代碼示例使用SVD進(jìn)行維度約簡,以發(fā)現(xiàn)用戶和電影之間的潛在關(guān)聯(lián)。importnumpyasnp
#評(píng)分?jǐn)?shù)據(jù)
ratings=np.array([[5,3,4,2],
[4,3,5,1],
[2,3,4,5],
[1,3,5,4]])
#計(jì)算SVD
U,sigma,VT=np.linalg.svd(ratings,full_matrices=False)
#選擇前k個(gè)奇異值進(jìn)行維度約簡,假設(shè)k=2
k=2
Sigma_k=np.diag(sigma[:k])
U_k=U[:,:k]
VT_k=VT[:k,:]
#重構(gòu)矩陣
ratings_reduced=U_k@Sigma_k@VT_k
#打印結(jié)果
print("ReducedRatings:\n",ratings_reduced)4.2.3解釋通過SVD,我們能夠?qū)⒃嫉脑u(píng)分矩陣分解并約簡到一個(gè)較低的維度,這有助于去除噪聲,發(fā)現(xiàn)數(shù)據(jù)中的潛在結(jié)構(gòu)。4.3SVD的優(yōu)化與加速4.3.1原理SVD在處理大規(guī)模矩陣時(shí)可能會(huì)非常耗時(shí)。為了加速SVD的計(jì)算,可以采用以下策略:隨機(jī)化SVD:通過隨機(jī)采樣矩陣的部分行或列來近似計(jì)算SVD,適用于大規(guī)模數(shù)據(jù)集。分塊SVD:將大矩陣分割成小塊,分別計(jì)算SVD,然后合并結(jié)果,適用于內(nèi)存受限的情況。迭代算法:使用迭代方法計(jì)算SVD,如PowerIteration或Lanczos算法,這些方法在計(jì)算大型稀疏矩陣的SVD時(shí)特別有效。4.3.2代碼示例使用scikit-learn庫中的TruncatedSVD類來實(shí)現(xiàn)隨機(jī)化SVD。fromsklearn.decompositionimportTruncatedSVD
importnumpyasnp
#創(chuàng)建一個(gè)大型稀疏矩陣
A_large=np.random.rand(1000,1000)
#使用TruncatedSVD進(jìn)行隨機(jī)化SVD
svd=TruncatedSVD(n_components=100,random_state=42)
A_reduced=svd.fit_transform(A_large)
#打印結(jié)果
print("ReducedMatrixShape:",A_reduced.shape)4.3.3解釋TruncatedSVD類允許我們指定要保留的奇異值數(shù)量,從而實(shí)現(xiàn)矩陣的維度約簡。通過隨機(jī)化方法,即使在處理大型數(shù)據(jù)集時(shí),也能快速得到結(jié)果。以上內(nèi)容詳細(xì)介紹了SVD的計(jì)算方法、在Python中的實(shí)現(xiàn)以及優(yōu)化策略,通過具體代碼示例展示了SVD在數(shù)據(jù)挖掘中的應(yīng)用,特別是維度約簡方面。5案例研究與實(shí)踐5.1電影評(píng)分?jǐn)?shù)據(jù)的SVD分析5.1.1原理與內(nèi)容奇異值分解(SVD)是一種強(qiáng)大的線性代數(shù)工具,用于分解矩陣,特別適用于數(shù)據(jù)挖掘中的維度約簡。在電影評(píng)分?jǐn)?shù)據(jù)中,我們通常有一個(gè)用戶-電影評(píng)分矩陣,其中行代表用戶,列代表電影,矩陣的每個(gè)元素表示用戶對(duì)電影的評(píng)分。SVD可以將這個(gè)高維矩陣分解為三個(gè)低維矩陣的乘積,從而揭示用戶和電影之間的潛在關(guān)聯(lián),降低數(shù)據(jù)維度,便于分析和推薦系統(tǒng)的設(shè)計(jì)。5.1.2示例代碼與數(shù)據(jù)樣例假設(shè)我們有以下用戶-電影評(píng)分矩陣:||電影A|電影B|電影C|電影D|
||||||
|用戶1|5|3|4|2|
|用戶2|4|4|5|1|
|用戶3|2|5|3|5|使用Python和NumPy庫進(jìn)行SVD分析:importnumpyasnp
#用戶-電影評(píng)分矩陣
ratings=np.array([
[5,3,4,2],
[4,4,5,1],
[2,5,3,5]
])
#執(zhí)行SVD分解
U,sigma,VT=np.linalg.svd(ratings)
#選擇前k個(gè)奇異值進(jìn)行降維
k=2
sigma_k=np.diag(sigma[:k])
U_k=U[:,:k]
VT_k=VT[:k,:]
#重構(gòu)矩陣
ratings_reconstructed=np.dot(U_k,np.dot(sigma_k,VT_k))
#輸出重構(gòu)后的矩陣
print(ratings_reconstructed)5.1.3解釋上述代碼首先定義了一個(gè)用戶-電影評(píng)分矩陣。然后,使用np.linalg.svd函數(shù)進(jìn)行SVD分解,得到三個(gè)矩陣U、sigma和VT。U和VT是正交矩陣,分別表示用戶和電影的特征向量;sigma是一個(gè)對(duì)角矩陣,包含奇異值。通過選擇前k個(gè)最大的奇異值,我們可以降低數(shù)據(jù)維度,重構(gòu)矩陣以近似原始評(píng)分矩陣。5.2文本數(shù)據(jù)的SVD降維5.2.1原理與內(nèi)容在文本數(shù)據(jù)中,SVD可以用于詞向量的生成和文本的降維。通過構(gòu)建詞-文檔矩陣,其中行代表詞,列代表文檔,矩陣的每個(gè)元素表示詞在文檔中的頻率或TF-IDF值,SVD可以揭示詞和文檔之間的潛在語義結(jié)構(gòu),從而進(jìn)行降維,便于文本分類、聚類和信息檢索。5.2.2示例代碼與數(shù)據(jù)樣例假設(shè)我們有以下詞-文檔矩陣:||文檔1|文檔2|文檔3|
|||||
|詞A|0.5|0.2|0.0|
|詞B|0.3|0.4|0.1|
|詞C|0.0|0.3|0.6|
|詞D|0.2|0.1|0.3|使用Python和SciPy庫進(jìn)行SVD降維:fromscipy.sparse.linalgimportsvds
fromsklearn.feature_extraction.textimportTfidfVectorizer
#文本數(shù)據(jù)
documents=[
"詞A和詞B在文檔1中頻繁出現(xiàn)",
"詞B和詞C在文檔2中頻繁出現(xiàn)",
"詞C和詞D在文檔3中頻繁出現(xiàn)"
]
#構(gòu)建TF-IDF矩陣
vectorizer=TfidfVectorizer()
tfidf_matrix=vectorizer.fit_transform(documents)
#執(zhí)行SVD降維
k=2
U,sigma,VT=svds(tfidf_matrix,k)
#輸出降維后的矩陣
print(U)
print(sigma)
print(VT)5.2.3解釋首先,我們使用TfidfVectorizer從文本數(shù)據(jù)中構(gòu)建TF-IDF矩陣。然后,使用svds函數(shù)進(jìn)行SVD降維,選擇前k個(gè)奇異值。降維后的矩陣U、sigma和VT可以用于進(jìn)一步的文本分析,如主題建?;蛭臋n聚類。5.3SVD在圖像處理中的應(yīng)用5.3.1原理與內(nèi)容在圖像處理中,SVD可以用于圖像壓縮和特征提取。圖像可以被視為一個(gè)二維矩陣,其中每個(gè)元素表示像素的強(qiáng)度。SVD可以將圖像矩陣分解,通過保留前k個(gè)最大的奇異值,可以顯著減少存儲(chǔ)空間,同時(shí)保持圖像的主要特征。5.3.2示例代碼與數(shù)據(jù)樣例假設(shè)我們有一個(gè)灰度圖像矩陣:importnumpyasnp
fromPILimportImage
importmatplotlib.pyplotasplt
#加載圖像
img=Image.open('example.jpg').convert('L')#轉(zhuǎn)換為灰度圖像
img_matrix=np.array(img)
#執(zhí)行SVD
U,sigma,VT=np.linalg.svd(img_matrix)
#選擇前k個(gè)奇異值進(jìn)行圖像壓縮
k=50
sigma_k=np.diag(sigma[:k])
U_k=U[:,:k]
VT_k=VT[:k,:]
#重構(gòu)圖像
img_compressed=np.dot(U_k,np.dot(sigma_k,VT_k))
#顯示原始圖像和壓縮后的圖像
plt.figure(figsize=(10,5))
plt.subplot(1,2,1)
plt.imshow(img_matrix,cmap='gray')
plt.title('原始圖像')
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(img_compressed,cmap='gray')
plt.title('壓縮后的圖像')
plt.axis('off')
plt.show()5.3.3解釋這段代碼首先加載一個(gè)灰度圖像,并將其轉(zhuǎn)換為矩陣。然后,執(zhí)行SVD分解,選擇前k個(gè)奇異值進(jìn)行圖像壓縮。通過重構(gòu)矩陣,我們可以得到一個(gè)壓縮后的圖像,該圖像保留了原始圖像的主要特征,但占用的存儲(chǔ)空間顯著減少。使用matplotlib庫,我們可以直觀地比較原始圖像和壓縮后的圖像,以評(píng)估SVD降維的效果。6總結(jié)與展望6.1SVD在數(shù)據(jù)挖掘中的作用總結(jié)奇異值分解(SVD)是線性代數(shù)中一種強(qiáng)大的工具,尤其在數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)領(lǐng)域,它被廣泛應(yīng)用于維度約簡、數(shù)據(jù)壓縮、特征提取以及推薦系統(tǒng)等場景。SVD能夠?qū)⒁粋€(gè)矩陣分解為三個(gè)矩陣的乘積,即:A其中,A是原始數(shù)據(jù)矩陣,U和V是正交矩陣,Σ是對(duì)角矩陣,包含了A的奇異值。通過保留Σ中的前k個(gè)最大奇異值,我們可以得到一個(gè)低秩近似矩陣,從而實(shí)現(xiàn)維度約簡。6.1.1示例:使用SVD進(jìn)行電影評(píng)分?jǐn)?shù)據(jù)的維度約簡假設(shè)我們有一個(gè)電影評(píng)分?jǐn)?shù)據(jù)集,其中每一行代表一個(gè)用戶,每一列代表一部電影,元素值為用戶對(duì)電影的評(píng)分。我們可以通過SVD來發(fā)現(xiàn)用戶和電影之間的潛在關(guān)聯(lián),從而降低數(shù)據(jù)的維度。importnumpyasnp
fromscipy.linalgimportsvd
#示例數(shù)據(jù):用戶對(duì)電影的評(píng)分矩陣
ratings=np.array([
[5,3,0,1],
[4,0,0,1],
[1,1,0,5],
[1,0,0,4],
[0,1,5,4],
])
#執(zhí)行SVD分解
U,sigma,VT=svd(ratings,full_matrices=False)
#保留前2個(gè)奇異值,進(jìn)行維度約簡
k=2
sigma_k=np.diag(sigma[:k])
U_k=U[:,:k]
VT_k=VT[:k,:]
#重構(gòu)矩陣
ratings_reduced=np.dot(U_k,np.dot(sigma_k,VT_k))
#輸出重構(gòu)后的矩陣
pri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年玻璃鋼市場前景分析及投資策略與風(fēng)險(xiǎn)管理研究報(bào)告
- 2024-2030年特種刀具市場投資前景分析及供需格局研究預(yù)測報(bào)告
- 2024-2030年片式NTC熱敏電阻行業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年煤炭機(jī)電設(shè)備行業(yè)市場供需格局及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 2024-2030年熱浸鍍鋁行業(yè)市場深度調(diào)研及前景趨勢(shì)與投資策略研究報(bào)告
- 2024-2030年炮紙市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報(bào)告
- 出租木房子改造方案
- 2024-2030年溫鹽深傳感器(CTD)行業(yè)供需平衡預(yù)測及經(jīng)營策略建議報(bào)告
- 出海廣告趨勢(shì)研究報(bào)告
- 出土古代服飾研究報(bào)告
- 2024-2030年高壓氣瓶行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024年秋季《勞動(dòng)法》全國自考考題含解析
- 2024至2030年中國化學(xué)過濾器行業(yè)供需狀況及發(fā)展痛點(diǎn)分析報(bào)告
- 珍惜師生情誼課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 第二章-急救醫(yī)療服務(wù)體系的組成與管理
- 2微訓(xùn)練 語文高中 必背古詩文 一篇一練(60篇版)(必修下) 08篇 學(xué)生版
- 一把手講安全課件:提升全員安全意識(shí)
- 2024年全國各地中考語文真題分類匯編【第二輯】專題09 散文閱讀(含答案)
- 2024年美國食品和飲料用氮?dú)獍l(fā)生器市場現(xiàn)狀及上下游分析報(bào)告
- 團(tuán)隊(duì)境內(nèi)旅游合同范本
- 醫(yī)院人才梯隊(duì)培養(yǎng)計(jì)劃方案(2篇)
評(píng)論
0/150
提交評(píng)論