矩阵-特征向量

转自:http://blog.csdn.net/wangxiaojun911/article/details/6737933

矩阵的基础内容以前已经提到,今天我们来看看矩阵的重要特性——特征向量。

矩阵是个非常抽象的数学概念,很多人到了这里往往望而生畏。比如矩阵的乘法为什么有这样奇怪的定义?实际上是由工程实际需要定义过来的。如果只知道概念不懂有何用处,思维就只有抽象性而没有直观性,实在是无法感受矩阵的精妙。

直观性说明

我们先看点直观性的内容。矩阵的特征方程式是:

A * x = lamda * x

这个方程可以看出什么?上次我们提到矩阵实际可以看作一个变换,方程左边就是把向量x变到另一个位置而已;右边就是把向量x作了一个拉伸,拉伸量是lamda。那么它的意义就很明显了,表达了矩阵A的一个特性就是这个矩阵可以把向量x拉长(或缩短)lamda倍,仅此而已。

任意给定一个矩阵A,并不是对所有的x它都能拉长(缩短)。凡是能被A拉长(缩短)的向量称为A的特征向量(Eigenvector);拉长(缩短)量就为这个特征向量对应的特征值(Eigenvalue)。

值得注意的是,我们说的特征向量是一类向量,因为任意一个特征向量随便乘以一个标量结果肯定也满足以上方程,当然这两个向量都可以看成是同一个特征向量,而且它们也都对应同一个特征值。

如果特征值是负数,那说明了矩阵不但把向量拉长(缩短)了,而且让向量指向了相反的方向。

一个矩阵可能可以拉长(缩短)好几个向量,所以它可能就有好多个特征值。有趣的是,如果A是实对称矩阵,那么那些不同的特征值对应的特征向量肯定是互相正交的,原因是(?)。

我们也可以说,一个变换矩阵的所有特征向量组成了这个变换矩阵的一组基。所谓基可以理解为坐标系的轴。我们平常用到的大多是直角坐标系,在线形代数中可以把这个坐标系扭曲、拉伸、旋转,称为基的变换。我们可以按我们的需求去设定基,但是基的轴之间必须是线形无关的,也就是保证坐标系的不同轴不要指向同一个方向或可以被别的轴组合而成,否则的话原来的空间就“撑”不起来了。在主成分分析(Principal Component Analysis)中我们通过在拉伸最大的方向设置基,忽略一些小的量,可以极大地压缩数据而减小失真。

变换矩阵的所有特征向量作为空间的基之所以重要,是因为在这些方向上变换矩阵可以拉伸向量而不必扭曲和旋转它,使得计算大为简单。所以特征值固然重要,我们的终极目标却是特征向量。

几个重要的抽象概念

我们回到矩阵的意义上,先介绍几个抽象概念:

:所有经过变换矩阵后变成了零向量的向量组成的集合,通常用Ker(A)来表示。假如你是一个向量,有一个矩阵要来变换你,如果你不幸落在了这个矩阵的核里面,那么很遗憾转换后你就变成了虚无的零。特别指出的是,核是“变换”(Transform)中的概念,矩阵变换中有一个相似的概念叫“零空间”。有的材料在谈到变换的时候使用T来表示,联系到矩阵时才用A,本文把矩阵直接看作“变换”。核所在的空间定义为V空间,也就是全部向量原来在的空间。

值域:某个空间中所有向量经过变换矩阵后形成的向量的集合,通常用R(A)来表示。假设你是一个向量,有一个矩阵要来变换你,这个矩阵的值域表示了你将来可能的位置,你不可能跑到这些位置之外。值域的维度也叫做秩(Rank)。值域所在的空间定义为W空间。W空间中不属于值域的部分等会儿我们会谈到。

空间:向量加上加、乘运算构成了空间。向量可以(也只能)在空间中变换。使用坐标系(基)在空间中描述向量。

不管是核还是值域,它们都是封闭的。意思是如果你和你的朋友困在核里面,你们不管是相加还是相乘都还会在核里面,跑不出去。这就构成了一个子空间。值域同理。

数学家证明了,V的维度一定等于它的任意一个变换矩阵的核的维度加上值域的维度。

dim( V ) = dim( Ker( A ) ) + dim( R( A) )

严格的证明过程可以参考教科书,这里说一个直观的证法:

V的维度也就是V的基的数目,这些基分为两部分,一部分在核中,一部分是值域中非零象的原象(肯定可以分,因为核和值域都是独立的子空间)。如果把V中的任意向量用基的形式写出来,那么这个向量必然也是一部分在核中,另一部分在值域中非零象的原象里。现在对这个向量作变换,核的那部分当然为零了,另一部分的维度刚好等于值域的维度。

变换矩阵行空间和零空间的关系

另外我们根据矩阵的性质,变换矩阵的行数等于V的维度,变换矩阵的秩等于值域R的维度,所以也可以记成:

A的行数= dim( A的零空间 )+ A的秩

因为A的秩又是A行空间的维度(注意在非满秩矩阵中这个数肯定小于行数):

A的行数= dim( A的零空间 )+ dim( A的行空间 )

为什么要写成这个形式?因为从这里我们可以发现A的零空间和A的行空间是正交互补的。正交是因为零空间就是核,按定义乘以A的行向量当然为零。互补是因为它们加起来刚好张成整个V空间。

这个正交互补导致了非常好的性质,因为A的零空间和A的行空间的基组合起来刚好可以凑成V的基。

变换矩阵列空间和左零空间的关系

如果把以上方程取转置,可得:

A的列数= dim( A^T的零空间 )+ dim( A的列空间 )

因为A^T的实际意义是把值域和定义域颠倒了过来,所以A^T的零空间就是从值域以外的区域投向V中零点的所有向量的空间(有点拗口!),有人把它称为“左零空间”(LeftNull Space)。这样:

A的列数= dim( A的左零空间 )+ dim( A的列空间 )

同样A的左零空间与A的列空间也正交互补,它们加起来刚好可以张成W空间。它们的基也构成了W的基。

变换矩阵行空间和列空间的关系

不要忘了变换矩阵实际上是把目标向量从行空间转化到列空间。

矩阵的行空间,列空间,零空间,左零空间构成了我们在线形代数研究中的所有空间,把它们的关系弄清楚,对于分别的基的转换非常重要。

特征方程的秘密

我们试图构造一个这样的变换矩阵A:它把向量变换到一个值域空间,这个值域空间的基是正交的;不仅如此,还要求任意一个基v都有A* u = lamda * v的形式,u是原来空间的一个已知的基。这样我们就能把复杂的向量问题转化到一个异常简单的空间中去。

如果u的数量不等于v,那么用A^T*A取代A,可以变为一个对称且半正定矩阵,它的特征向量正是要求的基v!

再次说明,矩阵不等于变换,把矩阵看成变换只是提供一个理解变换矩阵的方法。或者说矩阵只是变换的其中一种表现形式。

时间: 2024-11-06 21:56:33

矩阵-特征向量的相关文章

矩阵——特征向量(Eigenvector)

原文链接 矩阵的基础内容以前已经提到,今天我们来看看矩阵的重要特性——特征向量. 矩阵是个非常抽象的数学概念,很多人到了这里往往望而生畏.比如矩阵的乘法为什么有这样奇怪的定义?实际上是由工程实际需要定义过来的.如果只知道概念不懂有何用处,思维就只有抽象性而没有直观性,实在是无法感受矩阵的精妙. 直观性说明 我们先看点直观性的内容.矩阵的特征方程式是: A * x = lamda * x 这个方程可以看出什么?上次我们提到矩阵实际可以看作一个变换,方程左边就是把向量x变到另一个位置而已:右边就是把

转:numpy.linalg.eig() 计算矩阵特征向量

https://blog.csdn.net/chixujohnny/article/details/51063617 在PCA中有遇到,在这里记录一下 计算矩阵的特征值个特征向量,下面给出几个示例代码: 在使用前需要单独import一下 >>> from numpy import linalg as LA >>> w, v = LA.eig(np.diag((1, 2, 3)))>>> w; varray([ 1., 2., 3.])array([[

矩阵及其变换、特征值与特征向量的物理意义

矩阵及其变换.特征值与特征向量的物理意义 最近在做聚类的时候用到了主成分分析PCA技术,里面涉及一些关于矩阵特征值和特征向量的内容,在网上找到一篇对特征向量及其物理意义说明较好的文章,整理下来,分享一下. 一.矩阵基础[1]: 矩阵是一个表示二维空间的数组,矩阵可以看做是一个变换.在线性代数中,矩阵可以把一个向量变换到另一个位置,或者说从一个坐标系变换到另一个坐标系.矩阵的“基”,实际就是变换时所用的坐标系.而所谓的相似矩阵(),就是同样的变换,只不过使用了不同的坐标系.线性代数中的相似矩阵实际

主成分分析(Principal components analysis)-最大方差解释

转载地址:http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html 1. 问题 真实的训练数据总是存在各种各样的问题: 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩.我们知道要学好数学,需要有浓厚的兴趣,所以第二项与第一

PCA主成分分析

原文地址链接 1. 问题 真实的训练数据总是存在各种各样的问题: 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩.我们知道要学好数学,需要有浓厚的兴趣,所以第二项与第一项强相关,第三项和第二项也是强相关.那是不是可以合并第一项和第二项呢? 3. 拿到一个样本,特征非常多,而样例特别少,这样用回

PCA降纬一步一步

import numpy as np 第一步:原始值 X1 0.9 2.4 1.2 0.5 0.3 1.8 0.5 0.3 2.5 1.3 X2 1 2.6 1.7 0.7 0.7 1.4 0.6 0.6 2.6 1.1 第二步:计算平均值 =1.17,np.mean(x1)=1.1700000000000002 =1.3,  np.mean(x2)=1.3 第三步:X1 - ,X2 - ,得到如下表格 X11 0.9-=-0.27 2.4-=1.23 1.2-=0.03 0.5-=-0.67

从软件工程的角度写机器学习4——-C4.5决策树的工程实现

C4.5决策树的工程实现 这篇文章开始,将讲述一系列机器学习算法的工程实现方案.出于常用且简单的考虑,选择了C4.5决策树作为第一个算法. 工程框架 鉴于本篇是第一个算法实现,应此需要把整个工程框架介绍一下. 出于最优性能考虑,本框架是为C/C++语言设计的.不过即使用其他语言,也可以按这个框架实现,模块还可以再精简. 本工程定位: 1.无脑版机器学习算法库,使用者基本不需要了解任何算法细节,也不需要了解配置的算法参数含义. 2.可分离的算法库,算法库输出的模型文件可以方便地被其他工程解析使用.

PCA分析和因子分析

经常会碰到PCA分析和因子分析,但是总是不恨了解内部原理以及区别所在,现整理相关知识如下: 先参考以下网址的说明,(http://www.tuicool.com/articles/iqeU7b6),主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.探索性因子分析(EFA,explore factor analysis)是一系列用来发现一组变量的潜在结构的方法.它通过寻找一组更小的.潜在的或隐藏的结构来解释已观测到的.显式的变量间的关系.

Python 主成分分析PCA

主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维.去噪的有效方法,PCA的思想是将n维特征映射到k维上(k<n),这k维特征称为主元,是旧特征的线性组合,这些线性组合最大化样本方差,尽量使新的k个特征互不相关. 相关知识 介绍一个PCA的教程:A tutorial on Principal Components Analysis ——Lindsay I Smith 1.协方差 Covariance 变量X和变量Y的协方差公式如下,协方差是描述不同变量之间的相关关系,协方差>0时说