matlab qr分解求特征值_奇异值分解和主成分分析(李航第15、16章)

第15章、16章 奇异值分解和主成分分析

第15、16章实际上都是围绕“数据降维”这一主题展开的。

第16章 主成分分析(PCA)介绍了数据降维、压缩的基本思想及原理,具体的实现方法分为:特征值分解和奇异值分解。第15章则主要介绍了奇异值分解的原理。

书中的理论推导比较多,需要一定线性代数、概率论的基础知识,我把相关的基础知识单独整理出来,作为补充材料。

一、奇异值分解(SVD)

(一)预备知识

  1. 什么是正交矩阵?

正交矩阵是一个方阵,它的逆矩阵等于它的转置,即

它的每一列为标准正交向量,列的模长为1,即

正交矩阵具有“模长不变性”:

行列式

也是正交矩阵,因此 Q 的行向量也是模长为1 的标准正交向量。

2. 特征值、特征向量和矩阵对角化(n阶方阵)

满足

(复数)称为 A 的“特征值”,不同的特征值对应的非零向量 x 称为“特征向量”。可以通过解特征方程、齐次方程组来求特征值、特征向量。

特征方程:

齐次方程组:

如果把不同的特征值、特征向量联合起来写成矩阵形式(矩阵对角化):

, 即
,其中
是由特征值组成对角阵,S 的列为对应的特征向量。

n 阶方阵 A 可对角化 <=> A 有 n 个线性无关的特征向量 <= 有 n 个互异的特征值

3. 实对称矩阵

所谓实对称矩阵的元素均为实数,而且矩阵

它有非常好的性质:

一是特征值都是实数,二是不同特征值对应的特征向量“相互正交”,三是一定可以对角化(即使有相同特征值)。

,其中Q 为正交矩阵。

4. 矩阵的四个子空间

设 A 为

矩阵,rank(A) = r

列空间

, 即A的列的线性组合,维度为 r ;

行空间

,即A的行的线性组合,维度为r ;

零空间

, 即 Ax=0 的解空间,维度为 n-r ;

左零空间

,即
的解空间,维度为 m - r 。

互为正交补,
互为
正交补

值得注意的是:列空间向量有 m 个分量,但列空间的维度是 r ,它是

的“子空间”。左零空间也一样,它的维度是 m-r。 它们互为“正交补”。因此“列空间向量”与“左零空间向量”的点积等于0 (正交,
)。而且,这两个子空间联合起来可以得到

对于对称矩阵有

58bba19ab6061737059cbece031d73ba.png
矩阵A的四个子空间

(二)什么是奇异值分解

定义 15.1 :矩阵的奇异值分解是指,将一个非零的

实矩阵 A ,可以分解为三个实矩阵的乘积

其中,U 为 m阶正交矩阵,V 为 n阶正交矩阵,

是由对角元素组成的
矩形对角矩阵 (对角线上为非负元素,降序排列,其他元素为 0)

任意一个实矩阵A,其奇异值分解是一定存在的,但非唯一的

定理 15.1 (基本定理,存在性证明)

此定理是“构造性”的,已知条件只有 A 是什么,然后人为构造出

三个矩阵,最后证明

其核心过程(省略细节)如下:

  1. 确定 V 和

由于 A 为

矩阵(假设
),
为 n 阶实对称矩阵,

它的秩为

因此存在正交矩阵

其中对角阵

由 n 个特征值构成:

(P273证明特征值非负。若n列线性无关,r=n,则全正)。

r 个正特征值对应的特征向量为

n-r 个零特征值对应的特征向量为

矩阵A的奇异值为

于是得到n阶正交矩阵

以及对角矩阵

矩形对角矩阵

下列公式是后续证明的关键(P275):

2. 确定 U

以矩阵形式表示为

(P275证明U为标准正交基)

再令

的一组标准正交基,即

于是得到m阶正交矩阵

3. 证明

其中

称为“
紧奇异值分解”形式。

矩阵,
矩阵,
为 r 阶对角阵。

如果将部分特征值去掉(一般特征值越小越不重要),使得对角阵由 r 阶下降到 k阶,同时只保留 U 和 V 的前 k 个特征向量,得到矩阵A的最优近似(有损压缩,即“降维”):

称为“截断奇异值分解”。

(三)几何解释

88aa1cf23ea9141cf961ea27beb56785.png
奇异值分解的几何解释

矩阵乘法 Ax 表示: 从 n 维空间到 m 维空间的一个线性变换,

A 的奇异值分解为

,因此上述线性变换可分为三个阶段:

旋转或反射变换:

(正交矩阵的转置也是正交矩阵)

缩放变换:

(由n个分量变为m个分量)

旋转或反射变换:

V 和 U 的列向量分别是

的一组“标准正交基”,可以表示对应空间中的“旋转或反射变换”(行列式等于1为旋转,等于-1为反射)。所谓反射是指保持某轴不变,另一坐标轴反向,例如:保持y轴不变,取x轴的负方向为正。

这些结论源于“正交矩阵”的性质, V 是

的一组标准正交基,原始坐标系(标准正交基)是由 0和1构成的单位向量,而 V 相当于一组经历了“旋转或反射”的新坐标系,乘以正交矩阵V,相当于原始坐标系下的向量用新坐标系来表示。

660e8fe666559c68a7f954906341cca0.png
正交矩阵的几何意义(最简单的二维情况)

(四)性质

  1. 正交矩阵 U 和 V:
  2. 正交向量

3. A的子空间

U 的前 r 列是 C(A) 的标准正交基(列空间);

U 的后 m-r 列是

的标准正交基(左零空间);

V 的前 r 列是

的标准正交基 (行空间);

V 的后 n-r 列是 N(A) 的标准正交基 (零空间)。

4. 奇异值的数量

矩阵A的秩 rank(A) = r,等于正奇异值的个数;奇异值唯一,但矩阵 U 和 V 不唯一。

二、主成分分析(PCA)

(一)总体主成分分析

总体主成分分析以“m维随机变量”(即随机向量 x)为研究对象,不涉及由具体样本组成的数据矩阵。

  1. 预备知识

m维随机变量(向量):

,每一个
都是一个随机变量

x的期望值(均值向量):

x的协方差(矩阵):

系数向量(单位向量):

线性变换

y的期望值

y的方差

y的协方差

2. 主要性质

定理 16.1 设 x 是 m 维随机变量,

是 x 的协方差矩阵,
的特征值分别是
,特征值对应的单位特征向量分别是

则 x 的第 k 个主成分是

x 的第 k 主成分的方差是

即协方差矩阵

的第 k 个特征值。

定理证明的关键在于“约束最优化问题”(拉格朗日函数)的求解:

是一个向量:

对拉格朗日函数 L 求

的导数:

协方差矩阵

是一个 m 阶的对称方阵,可以通过较为简单的情况(如 m=3)证明:

,

若在

处取得最大值,即

因此,移项得到

, 两边同乘

从上述等式可知,如果

,即取协方差矩阵的最大特征值时,
为其对应的单位特征向量,此时
,也是就是
m 维随机变量 x“第1主成分”的方差

求解“第 2 主成分”的方法是类似的,不过增加了一些“等式约束”:

, 相应地需要增加一个拉格朗日乘子。

重复上述方法,最终证明:

推论16.1

的 m 个主成分,它的充要条件(等价于)是:

(1)

,其中
为“正交矩阵”。

(2)y的协方差矩阵是“对角阵”,即

,

(3)将

写成矩阵形式,得到

注意 x 与 y 的协方差矩阵:

, 其中

,即

根据矩阵“迹”的性质:

  1. n阶矩阵A的“迹”是矩阵所有对角线上元素之和,记作 tr(A);
  2. ,也就是说:“迹”等于所有特征值之和。

可以证明书中的主要性质(2)

定理16.2 从理论上阐述了通过主成分分析降维是怎么一回事。

主要通过构成一个系数矩阵 C,尺寸为q*m,然后证明它的主对角线上元素为1,其他为0。

最后的结论非常重要:

时,即保留正交矩阵A 的前 q 个向量,可以最大程度保留原随机变量的方差信息(即最佳的压缩效果)。

(二)样本主成分分析

  1. 基础概念

实际上,我们主要应用样本主成分分析对已知数据进行降维。

假设 m 维随机变量

进行 n 次独立观测,得到样本矩阵 X

,其中 m 为数据的“特征数”, n 为“样本数”。

不同的“特征”表示包含不同信息,不同统计规律的随机变量,“样本”则是这些随机变量的具体例子。这里用 m 表示特征数,n 表示样本数,与通常的用法相反。

“降维”的目的是去掉一部分“无用”的特征,一般来书,样本数 n > 特征数 m,因此样本矩阵 X 的秩最多为 m , 主成分最多有 m 个(不超过特征数),也可以压缩为一个更小的数。

2. 特征值分解算法

主成分分析主要有两种算法:特征值分解和奇异值分解。特征值分解基于样本矩阵的协方差矩阵(对称阵)进行,而奇异值分解则直接对样本矩阵(非对称)进行。由于奇异值分解的降维方法前面已经介绍过,下面主要讨论“特征值分解”:

(1)样本数据规范化(均值归零,方差归一)

第i个特征的样本均值:

第i个特征的样本方差(无偏估计):

此时数据的协方差矩阵(等于相关矩阵):

(2)求相关矩阵(对称阵)的特征值和特征向量

参考上一章的内容,通过求解特征方程:

以及齐次方程组

得到 特征值及特征向量。

(3)求 k 个样本主成分

以 k 个单位特征向量为系数进行线性变换,求出 k 个样本主成分

(4)计算主成分的方差贡献率和累计方差贡献率

累计方差贡献率表明分解后的压缩比率。

第k主元的方差贡献率:

前 k 个主元的累计方差贡献率:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《统计学习方法》是一本经典的机器学习教材,其介绍了统计学习的基本原理和常用方法。李航编写的《统计学习方法》一书在学术界和工业界都有很高的影响力。 对于李航《统计学习方法》一书MATLAB代码,我不清楚具体指的是书的哪些代码。该书没有提供完整的MATLAB代码,但其给出了一些算法的伪代码和概念性的示例。 如果要在MATLAB实现书算法,可以根据伪代码和示例进行改写和实现。具体的实现方式取决于要实现的算法和具体应用的需。 一般来说,实现统计学习方法的MATLAB代码需要用到一些基本的数学和编程技巧,如矩阵运算、概率理论、优化算法等。可以利用MATLAB矩阵和向量操作的高效性,简化算法的实现过程。 对于不熟悉MATLAB语言的人来说,编写《统计学习方法》的MATLAB代码可能相对困难。此时,可以参考相关的机器学习库和工具箱,如MATLAB自带的Statistics and Machine Learning Toolbox或者第三方开源库,来实现相关的算法。 总之,《统计学习方法》一书提供了机器学习算法的理论基础和实现思路,而具体的MATLAB代码的编写取决于实际需和编程经验。 ### 回答2: 李航的《统计学习方法》是机器学习领域的经典教材之一,其包含了很多重要的算法和理论。针对这本书的内容,可以使用MATLAB编写相关的代码来实现其的一些算法。 例如,在书介绍了支持向量机(SVM)的原理和实现方法。MATLAB提供了一个简单易用的工具箱,可以直接调用其的函数来实现支持向量机的训练和预测。下面是一个简单的MATLAB代码示例: ``` % 导入数据集 load('data.mat'); X = data(:, 1:2); % 输入特征 y = data(:, 3); % 标签 % 训练支持向量机模型 svm_model = fitcsvm(X, y, 'KernelFunction', 'linear'); % 预测新样本 new_data = [2, 3; 4, 5]; % 新样本特征 labels = predict(svm_model, new_data); % 预测标签 % 输出预测结果 disp(labels); ``` 以上代码首先导入数据集,然后使用`fitcsvm`函数训练了一个线性核的支持向量机模型。接着,我们可以使用这个模型对新的样本进行预测,使用`predict`函数可以得到预测的标签。最后,将预测结果输出到命令行。 需要注意的是,以上代码只是一个简单的示例,实际应用可能需要进行更多的数据预处理、调参等操作。而且,书涉及的其他算法和方法也可以使用类似的方式在MATLAB进行实现。希望这个简单的示例能够帮助你理解如何在MATLAB编写《统计学习方法》算法代码。 ### 回答3: 李航的《统计学习方法》是一本经典的机器学习教材,其介绍了统计学习方法的原理、算法和应用。Matlab是一种常用的科学计算软件,也是机器学习常用的编程语言之一。在学习和实践统计学习方法过程,我们可以使用Matlab来实现其算法和案例。 首先,可以使用Matlab来编写Perceptron算法的实现。Perceptron算法是 Li Haung 在《统计学习方法》介绍的一种简单的二分类算法。我们可以编写一个函数,输入训练数据集和标签集,利用Perceptron算法进行训练,得到权重向量W和截距b。然后,我们可以使用得到的W和b来预测新的样本数据。这个过程可以使用Matlab矩阵操作和循环结构来实现。 接下来,可以使用Matlab来实现K近邻算法。K近邻算法是《统计学习方法》介绍的一种非参数分类算法。我们可以编写一个函数,输入训练数据集、训练标签集和测试数据,计算测试数据与训练数据之间的距离,并找到K个最近邻的样本。然后,根据这K个最近邻的标签来预测测试数据的类别。在Matlab,可以使用欧氏距离计算距离,并利用排序函数来找出K个最近邻。 另外,我们还可以用Matlab来实现决策树算法。决策树是《统计学习方法》介绍的一种常用的分类算法。我们可以编写一个函数,输入训练数据集和标签集,通过递归地选择最优特征来构建决策树。然后,使用构建好的决策树来预测新的样本数据的类别。在Matlab,可以使用选择最优特征的指标和递归函数来构建决策树。 总结来说,通过使用Matlab来实现《统计学习方法》算法,我们能更好地理解和应用统计学习方法的原理和算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值