SVD—matlab,python,scikit-learn 操作对比
1.简介
SVD的用途有两个,第一个是降噪,第二个是pca主成分分析,但每个包和语言都有不同的方法,所以在这里一一总结
2.matlab机器学习实战方法
x=[1,1,1,0,0;2,2,2,0,0;1,1,1,0,0;5,5,5,0,0;1,1,0,2,2;0,0,0,3,3;0,0,0,1,1]
[U,S,V]=svd(x);
S
S =
Diagonal Matrix
9.7214e+00 0 0 0 0
0 5.2940e+00 0 0 0
0 0 6.8423e-01 0 0
0 0 0 1.1587e-15 0
0 0 0 0 1.5459e-31
0 0 0 0 0
0 0 0 0 0
U
U =
-1.7794e-01 -1.6423e-02 1.8050e-02 9.8285e-01 1.2760e-02 3.3429e-02 2.1559e-02
-3.5588e-01 -3.2846e-02 3.6100e-02 -3.5708e-02 -7.8642e-01 -4.7307e-01 -1.6565e-01
-1.7794e-01 -1.6423e-02 1.8050e-02 -6.0607e-02 -4.6595e-01 8.2137e-01 2.6892e-01
-8.8970e-01 -8.2114e-02 9.0251e-02 -1.7017e-01 4.0521e-01 1.8268e-02 8.1658e-03
-1.3395e-01 5.3353e-01 -8.3511e-01 4.6326e-16 2.5229e-17 -1.8166e-17 7.6185e-17
-2.1575e-02 7.9768e-01 5.1307e-01 3.1394e-03 2.8524e-03 1.0005e-01 -2.9995e-01
-7.1917e-03 2.6589e-01 1.7102e-01 -9.4183e-03 -8.5572e-03 -3.0016e-01 8.9986e-01
z=U(:,1:3)*S(1:3,1:3) #这就是svd转化后的压缩特征
z =
-1.729823 -0.086942