一.目的
理论上都是为了简化计算
1.比如求解矩阵的多次幂可用矩阵分解方法实现快速手酸
2.用于求解线性方程,比如正交分解就可以用来求解不相容的最小二乘方程组(没有确切的解)
比如Ax=b : 用A的列向量线性组合表示b,求出线性组合的各个系数(组成x),对于b来说,如果b本身不在A的列向量线性组合组成的线性空间中,那么线性方程组就是不相容的,此时要求一个最小二乘解增广矩阵(A,b)的秩与矩阵A的秩相等的时候方程是有解的
增广矩阵(A,b)的秩>A的秩.方程是无解或者是没有精确的解(就是不相容)
3.数据拟合
4.矩阵求逆
5.数据压缩与解耦合,尤其是PC降维(最常用)
6.卫星对地面进行遥感,从卫星传数据到地面需要压缩也需要用到
举例 :二.特征值与特征向量
满足|A-λE|=0,其中E为单位向量
三.矩阵分解的方法
1.正交分解(QR)
举例 :
Python实现 :
有可能跟上面计算不一样,是因为x1,x2,x3选的不同,计算的结果也就不同
2.SVD分解
机器学习的推荐系统,图像的压缩和重构经常用到SVD分解
U : 左奇异向量矩阵
V : 右奇异向量矩阵
∑ :对角矩阵
案例 :
Python实现:
sig2是重构了∑,如果将s[1]改为0,得到的值与原来的a是差不太多的,σ可以理解为系数的重要性,上例中2相比于192来说可以忽略不计,对于数据量特别大的时候SVD分解减少存储硬件的开销