zoukankan      html  css  js  c++  java
  • 特征分解、二次型、特征分解的应用

    特征分解

    1)一般矩阵

    特征分解的一般性质:

    已知线性无关的向量,一定存在矩阵的逆。

    Tip:并非所有的方阵(n×n)都可以被对角化。

    2)对称矩阵

    性质1:如果一个对称矩阵的特征值都不相同,则其相应的特征向量不仅线性无关,而且所有的特征向量正交(乘积为0)。

    性质2:对称矩阵的特征值都是实数。

    性质3:

     

    性质4:

     

    性质5:

    对称矩阵可以被U相似对角化(U是特征向量矩阵)

    二次型

    正定矩阵和负定矩阵均值涉及对称矩阵的,二次型涉及的矩阵是方阵即可。

     

    性质1:对于一个正定矩阵,他的特征值均大于0

    特征分解的应用

    1)PCA(特征分解)

    矩阵A(m×n)的协方差矩阵是一个对称矩阵,根据对称矩阵可以被U相似对角化,则A=UΛUT(U是特征向量矩阵,Λ是对角为方差的对角矩阵)。

    降维:

    我们取最大的N个特征值对应的特征向量组成的矩阵,可以称之为压缩矩阵;得到了压缩矩阵之后,将去均值的数据矩阵乘以压缩矩阵,就实现了将原始数据特征转化为新的空间特征,进而使数据特征得到了压缩处理。

    2)SVD(特征分解的广义化)

     

    SVD和特征分解的关系:

     

    如何计算SVD分解后U,V呢?

    我们将A的转置和A做矩阵乘法,那么会得到n×n的一个方阵ATA。既然ATA是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:(ATA)vi=λivi。这样我们就可以得到矩阵ATA的n个特征值和对应的n个特征向量v了。将ATA的所有特征向量张成一个n×n的矩阵V,就是我们SVD公式里面的V矩阵了。一般我们将V中的每个特征向量叫做A的右奇异向量。

    反过来我们将A和A的转置做矩阵乘法,将AAT的所有特征向量张成一个m×m的矩阵V,就是我们SVD公式里面的U矩阵了。一般我们将U中的每个特征向量叫做A的左奇异向量。

    同时我们可以得到特征值矩阵等于奇异值矩阵的平方。

    如何使用SVD进行降维呢?

    注意到PCA仅仅使用了我们SVD的右奇异矩阵,没有使用左奇异矩阵,那么左奇异矩阵有什么用呢?

    假设我们的样本是m×n的矩阵X,如果我们通过SVD找到了矩阵XXT最大的d个特征向量张成的m×d维矩阵U,则我们如果进行如下处理:

    Xd×n′=Ud×mTXm×n

    可以得到一个d×n的矩阵X′,这个矩阵和我们原来的m×n维样本矩阵X相比,行数从m减到了k,可见对行数进行了压缩。也就是说,左奇异矩阵可以用于行数的压缩。相对的,右奇异矩阵可以用于列数即特征维度的压缩,也就是我们的PCA降维。

  • 相关阅读:
    学习笔记: yield迭代器
    学习笔记: 委托解析和封装,事件及应用
    学习笔记: MD5/DES/RSA三类加密,SSL协议解析
    学习笔记: Expression表达式目录树详解和扩展封装
    学习笔记: Expression表达式目录树详解和扩展封装
    学习笔记: IO操作及序列化
    数据类型转换
    短路运算(逻辑运算是短路运算中最常见的一种)
    清除浮动
    css初始化
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10038561.html
Copyright © 2011-2022 走看看