Greeting!

特征值与特征向量是大学线性代数与统计学课程里的内容,当年强背了过去,并没有真正理解过这个问题。为了以后学习统计学习方法更方便,在此记录下学习文章以加深理解。(个人观点,如有错漏请提出)


抽象理解

特征值(eigenvalue)和特征向量(eigenvector)具有共同前缀 eigen- ,其起源于德语,意为“特征”。首先我们应该充分理解“特征”的含义:对于线性代数而言,特征向量和特征值体现了矩阵的本质,“特征”强调了单个矩阵的特点,相当于它的ID card。

从线性代数的角度出发,如果把矩阵看作n维空间下的一个线性变换,这个变换有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。其中的N个变化方向,就是这个矩阵最重要的“特征”。

有了特征的概念后,我们又如何理解特征值与特征向量呢?可以作这样比喻:

  1. 如果把矩阵看作是位移,那么特征值 = 位移的速度,特征向量 = 位移的方向
  2. 特征向量在一个矩阵的作用下作伸缩运动,伸缩的幅度由特征值确定(注意观察定义式)。特征值大于1,所有属于此特征值的特征向量变长;特征值属于(0, 1),特征向量缩短;特征值小于0,特征向量则反向延长。

我们都知道线性代数中,左乘一个矩阵是对应着行变换,右乘一个矩阵对应列变换,其实际的作用也就是对常规坐标系进行了迁移。那么,【重点】对于在普通二维坐标系下的向量

,它在矩阵
描述空间中的表示与自己单纯的进行拉伸或者缩放的效果一致,满足这种特殊性的
就是特征矩阵,对应的拉伸量
就是特征值。

有了这个特殊的性质,特征向量与特征值出现在很多有矩阵运算的地方,如主成分分析(PCA)、奇异值分解(SVD)等机器学习方法中更是时常提到。至于PCA与SVD的基本思想,请看我接下来的科普文章。

关于定义

设A是n阶矩阵,如果存在常数

和n维非零向量X,

使得

则称

为矩阵A的一个

特征值(标量),X为矩阵A对应于特征值的一个特征向量

该式子可理解为向量x在几何空间中经过矩阵A的变换后得到向量

。由此可知,向量
经过矩阵A变换后,只是大小伸缩了
倍。总而言之:

特征向量提供了复杂的矩阵乘法到简单的数乘之间的转换!

  • 并且,我们有以下推论:

其中第三个是特征值分解公式,

特征向量矩阵(n个大小为

的特征向量
组成)。
是包含对应特征值的

对角矩阵。根据不同的特征值的大小,可以知道每个特征向量对应权重,即其重要性。

  • 从解题的角度,我们再来谈谈如何求特征值和特征向量:

设向量a为矩阵A对应于特征值 λ 的特征向量,

则有:

所以求解a就是求解

的非零解。

其中I是单位矩阵,因此

称为A的

特征多项式


前置知识

(1)方差、协方差、相关系数、协方差矩阵

方差

方差用来度量随机变量 X 与其数学期望 E(X) 的偏离程度,公式为:

方差总是一个非负数,当随机变量的可能值集中在数学期望的附近时,方差较小;反之方差大。由方差的大小可以推断随机变量分布的分散程度

协方差

协方差用来刻画两个随机变量 X , Y 的相关性,公式为:

如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。
对上述“同向”和“反向”的理解:
1)你变大,同时我也变大,说明两个变量是同向变化的,这时协方差就是正的。
2)你变大,同时我变小,说明两个变量是反向变化的,这时协方差就是负的。
3)从数值来看,协方差的数值越大,两个变量同向程度也就越大。反之亦然。

相关系数

用随机变量X,Y的协方差除以X的标准差和Y的标准差,公式为:

相关系数也可以看成是协方差:一种剔除了两个变量量纲,标准化后的协方差。

相关系数是一种标准化后的协方差,有以下特点:
1)也可以反映两个变量变化时是同向还是反向,如果同向变化就为正,反向变化就为负。
2)它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。

对于两个随机变量:
1)当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,即,你变大一倍,我也变大一倍;你变小一倍,我也变小一倍。也即是完全正相关(以X、Y为横纵坐标轴,可以画出一条斜率为正数的直线,所以X、Y是线性关系的)。
2)随着他们相关系数减小,两个变量变化时的相似度也变小,当相关系数为0时,两个变量的变化过程没有任何相似度,也即两个变量无关。
3)当相关系数继续变小,小于0时,两个变量开始出现反向的相似度,随着相关系数继续变小,反向相似度会逐渐变大。
4)当相关系数为-1时,说明两个变量变化的反向相似度最大,即,你变大一倍,我变小一倍;你变小一倍,我变大一倍。也即是完全负相关(以X、Y为横纵坐标轴,可以画出一条斜率为负数的直线,所以X、Y也是线性关系的)。

协方差矩阵

  • 协方差只能处理二维问题,即两个随机变量的相关程度。
  • 维数多了就需要计算多个协方差,于是出现了协方差矩阵。
  • 协方差矩阵的每一个值就是对应下标的两个随机变量的协方差(即相关程度)。

可以看出,协方差矩阵是一个对称矩阵,而且对角线是各个维度的方差。

python代码举例:

import numpy as np
X = np.array([[-2.1,-1,4.3],[3,1.1,0.12],[3,1.1,0.12]])
#每一行代表一个随机变量,每列代表随机变量的值
#[[-2.1,-1,4.3],
# [3,1.1,0.12],
# [3,1.1,0.12]]print(np.cov(X))
#[[ 11.71      ,  -4.286     ,  -4.286     ],
# [ -4.286     ,   2.14413333,   2.14413333],
# [ -4.286     ,   2.14413333,   2.14413333]])


应用实例分析——机器学习中的分类问题

  机器学习中的分类问题,给出178个葡萄酒样本,每个样本含有13个参数,比如酒精度、酸度、镁含量等,这些样本属于3个不同种类的葡萄酒。任务是提取3种葡萄酒的特征,以便下一次给出一个新的葡萄酒样本的时候,能根据已有数据判断出新样本是哪一种葡萄酒。

问题详细描述:http://archive.ics.uci.edu/ml/datasets/Wine
训练样本数据:http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data

把数据集赋给一个178行13列(13个特征)的矩阵R,它的协方差矩阵C是13行13列的矩阵,对C进行特征分解,对角化

其中U是特征向量组成的矩阵,D是特征组成的对角矩阵,并按由大到小排列。

然后,令:

就实现了数据集特征向量上的投影。

【注意】

中的数据列是按照对应特征值的大小排列的,后面的列对应的特征值小,因而去掉以后对整个数据集的影响比较小。比如,现在我们通过上面的公式去掉后面的8列,只保留前5列(
),就相当于将13维的数据通过PCA降到了5维。

Talk is cheap, show me the code!

根据蜥蜴书的内容,后面会专门开一个专栏分享如何使用sklearn库解决上述机器学习问题的code以及对应注释,同步会上传至Github上,敬请期待!

随机向量x的协方差阵_【科普】如何正确理解特征值与特征向量相关推荐

  1. 随机向量x的协方差阵_统计不相关:两个随机向量x(?)与y(?)统计不相关,若它们的互协方差矩阵不等于零矩阵,即Cxy = O。...

    统计不相关:两个随机向量x(?)与y(?)统计不相关,若它们的互协方差矩阵不等于零矩阵,即Cxy = O. 答:× 智慧职教: 边际效用是指某种物品的消费量每增加一单位所增加的或. 答:满足程度 效用 ...

  2. python中向量长度_线性代数精华——矩阵的特征值与特征向量

    点击上方蓝字,和我一起学技术. 今天和大家聊一个非常重要,在机器学习领域也广泛使用的一个概念--矩阵的特征值与特征向量. 我们先来看它的定义,定义本身很简单,假设我们有一个n阶的矩阵A以及一个实数λ, ...

  3. c++求矩阵的秩_利用Python矩阵求逆、特征值及特征向量

    今日,分享点Python学习小记,利用Python实现以下目的: (1)判定是否为方阵 矩阵的本质就是映射.对于一个m×n的矩阵A,y=Ax的作用是将向量从n维原始空间中的x坐标位置,映射到m维目标空 ...

  4. python的上下文管理用哪个关键字_正确理解python中的关键字“with”与上下文管理器...

    正确理解python中的关键字"with"与上下文管理器 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  正确理解python中的关键字&quo ...

  5. python函数可以作为容器对象吗_正确理解Python函数是第一类对象

    正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了.但函数 ...

  6. u盘属于计算机硬件范畴吗,正确理解移动硬盘和U盘的区别_计算机硬件和网络_IT /计算机_信息...

    正确理解移动硬盘和U盘之间的区别. 移动存储设备是现代人们工作中的重要数据传输工具. 移动硬盘和U盘是最常用和最常用的两种. 对于所有人来说,移动硬盘可以存储大容量数据,而U盘的存储容量却很小. 至于 ...

  7. cap理论具体含义_如何正确理解CAP理论?

    如何正确理解CAP理论? 在大数据领域,被业界广泛谈及的CAP理论存在着一些关键性的认知误区,而只有全面地考察与分析分布式环境中的各种场景,我们才能真正正确地理解它. 目前,CAP(Consisten ...

  8. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  9. if __name__ == '__main__' 如何正确理解

    if __name__ == '__main__' 如何正确理解 if __name__ == '__main__' 如何正确理解 - 姚红 - 博客园 python编程中的if __name__ = ...

最新文章

  1. 条件选择结构:星期计划(switch)
  2. R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合)
  3. tf.keras.layers.TextVectorization 示例
  4. Docker源码修改工作总结(三)
  5. C语言编译构建系统,C语言 之建立静态链接库
  6. OpenStack的部署T版(四)——Placement组件
  7. Composer 本地路径加载 laravel-admin 扩展包
  8. 南京二本有什么计算机学校,南京有什么好的二本学校?
  9. 爬楼梯(递归——奇数步,偶数步扩展)
  10. PyCharm 5 破解注册方法
  11. 【已解决】请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记
  12. 不被大神Hinton认同,否定现有同行成果,谷歌这篇烧脑研究最终拿下ICML2019最佳论文...
  13. CartoonGAN照片动漫化
  14. lspci -tv description
  15. 关于ILRunTime + FGUI 组合使用的补充
  16. JAVASCRIPT 上传文件的几种方式
  17. 初识Exchange2010
  18. 外汇天眼:美国10年期国债收益率创下2011年以来新高
  19. Android开发之小程序-秒表
  20. centos7系统下安装JDK8的详细步骤

热门文章

  1. 搭建前端监控系统(四)接口请求异常监控篇
  2. 记录下返回list给前端 遇到 $ref:$.data.*** 问题
  3. Java与数据库 —— JDBC标准
  4. git问题ERROR: Repository not found.的解决办法
  5. PowerShell设置命令别名Alias
  6. Python 3 mysql 简介安装
  7. 避免游戏中的批量 sql
  8. 苏格拉底的“灵魂”的哲学意味
  9. 剑指offer(C++)-JZ6:从尾到头打印链表(数据结构-链表)
  10. 华为机试HJ83:二维数组操作