设\(\lambda_i\)为\(\bf{X} \bf{X}^T\)的特征值,对应的特征向量为\(\mathbf{\alpha}_i\),则

\[\bf{X} \bf{X}^T \mathbf{\alpha}_i=\lambda_i\mathbf{\alpha}_i
\tag{1}
\]

\((1)\)式两边同时左乘\(\bf{X}^T\),有

\[\bf{X}^T \bf{X} \bf{X}^T \mathbf{\alpha}_i=\bf{X}^T \lambda_i\mathbf{\alpha}_i
\]

\[(\bf{X}^T \bf{X}) (\bf{X}^T \mathbf{\alpha}_i)=\lambda_i(\bf{X}^T \mathbf{\alpha}_i)
\tag{2}
\]

\((2)\)式意味着\(\lambda_i\)是矩阵\(\bf{X}^T \bf{X}\)的特征值,其对应的一个特征向量为\(\bf{X}^T \mathbf{\alpha}_i\)。

注意到

\[\text{rank} (\bf{X} \bf{X}^T)=\text{rank} (\bf{X}^T\bf{X})=\text{rank} (\bf{X})=\text{rank}(\bf{X})
\tag{3}
\]

\((2)\)式和\((3)\)式说明,\(\bf{X} \bf{X}^T\)和\(\bf{X}^T\bf{X}\)的非零特征根是一样的,非零特征根对应的特征向量具有如下关系:

  • 若\(\mathbf{\alpha}_i\)是\(\bf{X} \bf{X}^T\)的一个特征向量,那么\(\bf{X}^T \mathbf{\alpha}_i\)为\(\bf{X}^T\bf{X}\)的一个特征向量,二者分别对应同一个非零特征值
  • 若\(\mathbf{\beta}_i\)是\(\bf{X}^T\bf{X}\)的一个特征向量,那么\(\bf{X} \mathbf{\beta}_i\)为\(\bf{X}\bf{X}^T\)的一个特征向量,二者分别对应同一个非零特征值(证法类似,此处略去)

这一结论的具体应用如下:

假如样本矩阵\(\bf{X}\)有100个观测,1000个变量,其维度\(n\times p=100 \times 1000\),现在要计算\(\bf{X}^T\bf{X}\)的特征向量。注意到,一方面\(\bf{X}^T\bf{X}\)的维度为\(1000 \times 1000\),维度很大,直接输进软件里求解的话会耗费大量时间;另一方面,\(\bf{X}\bf{X}^T\)的维度为\(100 \times 100\),维度适中,直接输进软件里求解的话较快。因此,可以先求得\(\bf{X}\bf{X}^T\)的非零特征根对应的特征向量,然后分别再左乘矩阵\(\bf{X}^T\)即可解决问题。

随机推荐

  1. ubuntu系统的虚机 迁移到大厂的云服务器 后发现 实例内网一直都是原虚机的内网IP,

    ubuntu SMC迁移 后发现 实例内网一直都是原虚机的内网IPip a能看到现在的ECS内网以及原虚机的内网 但是ifconfig看只有原虚机的内网IP于是 尝试dhclient eth0重启内网 ...

  2. 从Encoder-Decoder(Seq2Seq)理解Attention的本质

    0. 目录 1. 前言 2. Transformer模型结构 2.1 Transformer的编码器解码器 2.2 输入层 2.3 位置向量 2.4 Attention模型 3. 总结 1. 语言模型 ...

  3. Mysql优化工具

    https://blog.csdn.net/qq_29229567/article/details/106241831

  4. antd切换主题

    { "name": "my-react-app", "version": "0.1.0", "private& ...

  5. 解读gitee上的vue3开源项目,并记录不熟悉的API

    1.vue中的getCurrentInstance: 在Vue3中,getCurrentInstance()可以用来获取当前组件实例: 2.vue中使用mitt实现兄弟组件传值: 在vue3中$on, ...

  6. golang 字符串函数

    1. 统计字符串的长度,按字节进行统计 package main import "fmt" func main() { var s1 string = "hello,世界 ...

  7. M1芯片使用pod报错 *** for architecture arm64

    1.添加如下配置 pod 和 工程都需要修改 2.Podfile最后添加如下代码 post_install do |installer| installer.pods_project.build_co ...

  8. JavaSE——遍历字符串与统计字符个数

    package com.zhao.stringtest; import java.util.Scanner; public class test2 { //键盘录入一个字符串,统计该字符串中大写字母, ...

  9. 关于DIFF插件的使用

    diff插件主要是对比 两个字符串/数组/json对象 等等 差异得问题,多数情况用到测试,甄别错误场景 我主要使用得场景就是在系统日志中对比两组json得差异 1. 安装插件 npm install ...

  10. 《CSOL大灾变》Mobile移植记录——购买区域

    在CSOL大灾变模式中,购买武器只能出现在特定区域,如下:    这里可以通过添加一些不渲染的BOX(如图中的蓝色BOX)作为触发器,然后检测玩家与之触发后才能弹出购买菜单. 在JmonkeyEngi ...