问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

通俗易懂的讲解奇异值分解(SVD)和主成分分析(PCA)

创作时间:
2025-01-22 01:09:38
作者:
@小白创作中心

通俗易懂的讲解奇异值分解(SVD)和主成分分析(PCA)

奇异值分解(SVD)和主成分分析(PCA)是机器学习和数据科学领域中非常重要的概念,它们在降维、推荐系统、自然语言处理等领域都有广泛的应用。本文将从特征分解开始,逐步介绍SVD和PCA的基本概念、数学原理及其应用,帮助读者深入理解这两个重要的数学工具。

特征分解

首先,我们简单回顾下特征值和特征向量的定义。在几何学中,矩阵可以看作是一种线性变换,而特征向量就是在这个变换下只发生伸缩,方向不变的非零向量,伸缩的比例就是特征值。

对称矩阵的特征分解

对称矩阵的特征分解具有特殊的意义,因为对称矩阵的特征向量是正交的,这使得对称矩阵的特征分解具有很多优良的性质。

奇异值分解(SVD)

定义

奇异值分解(Singular Value Decomposition,SVD)是线性代数中一种重要的矩阵分解方法,它可以将一个任意的m×n矩阵分解为三个矩阵的乘积:

A = UΣV^T

其中,U和V是正交矩阵,Σ是一个对角矩阵,其对角线上的元素称为奇异值。

奇异值求解

奇异值可以通过求解矩阵A的转置与A的乘积的特征值来获得,具体来说,矩阵A的奇异值是矩阵A^TA的特征值的平方根。

实际计算奇异值

在实际计算中,通常使用数值方法来求解SVD,例如QR算法、Lanczos算法等。

特征值分解和奇异值分解的区别

  • 特征值只能作用在一个m×m的正方矩阵上,而奇异值分解则可以作用在一个m×n的长方矩阵上。
  • 奇异值分解同时包含了旋转、缩放和投影三种作用,奇异值分解公式中U和V都起到了对A旋转的作用,而Σ起到了对A缩放的作用。特征值分解只有缩放。

主成分分析(PCA)

主成分分析(Principal Component Analysis,PCA)是一种常用的降维方法,它通过寻找数据的主成分(即数据方差最大的方向)来实现降维。PCA可以看作是SVD在数据特征提取上的应用。

SVD在机器学习中的应用

SVD在机器学习领域有广泛的应用,包括但不限于:

  • 降维算法:通过保留最大的几个奇异值来实现降维。
  • 推荐系统:通过矩阵分解来预测用户对物品的评分。
  • 自然语言处理:在词向量表示、主题模型等领域都有应用。

数学基础

矩阵和正交向量

正交向量:若两向量,它们的点积为0,则它们互相称为正交向量,如(1,1,0)和(1,-1,0)。

正交矩阵

正交矩阵是一个方阵,其行向量和列向量都是单位正交向量。

SVD的实现

在Python中,可以使用numpy库的linalg.svd函数来实现SVD。该函数的参数含义如下:

  • a:待分解的矩阵。
  • full_matrices:是否返回完整的U和V矩阵,默认为True。
  • compute_uv:是否计算U和V矩阵,默认为True。

PCA与SVD的关系

PCA可以看作是SVD的一个特例。在对数据矩阵进行SVD分解后,通过保留最大的几个奇异值和对应的左奇异向量,就可以实现PCA的降维效果。

如上图所示,黑点是数据点,那么长的那个红箭头就是数据最主要的方向,也就是最显明/差异最明显的特征。求法就是对于所有数据,找出vi使得数据在vi方向上的方差最大,而且vi要满足与v1~v(i-1)张成的空间正交。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号