奇异值分解(SVD)与PCA

奇异值分解在数据降维中有较多的应用,比如PCA、图像压缩。

1. 原理

参考文章:https://www.cnblogs.com/endlesscoding/p/10033527.html
奇异值分解(SVD)与PCA_第1张图片

2. python 计算

x=二维数组
,svd_v,=np.linalg.svd(x,full_matrices=1,compute_uv=1)

svd_v就是算出的奇异值。

奇异值分解(SVD)与PCA_第2张图片

3.应用

主成分分析(PCA):scikit-learn的PCA算法的背后真正的实现就是用的SVD。
在这里我们只要求得奇异值分解中的左奇异向量或右奇异向量中的一个,具体求哪个是要根据你的X向量的书写方式的,即行数是样本数还是特征数,总之左奇异向量是用来压缩行数,右奇异向量是用来压缩列数。

你可能感兴趣的:(算法)