type
status
date
slug
summary
tags
category
icon
password

notion image

核心思想与原理

降维、变换基底

  • 找到一条轴进行投影
  • 投影后相互间距变大

基变换

我们知道要获得原始数据 新的表示空间 ,最简单的方法是对原始数据进行线性变换(也叫做基变换)。其中, 是原始样本, 是基向量, 是新表达。
数学表达:
  • 其中 是行向量,表示第 个基;
  • 为列向量,表示第 个原始数据
时,即「基的维度 < 数据维度」时,达到降维目的,即 X

方差

🧯
表示数据分散的程度,在 PCA 中,我们希望方差越大,即 的取值比较分散
  • 数学定义,对于单一随机变量
  • 将每个数据减去平均值,去中心化,可简化公式为

协方差

🧯
表明的是数据多个维度坐标的差距
对于 维随机变量
  • 协方差矩阵 为 n 行 n 列的对称矩阵,主对角线方差,斜对角线为协方差
  • 的每一列代表一个样本,每一列中的每一个数代表的为特征,即
  • 为对称矩阵
  • 对角线分别为各个特征的方差,而第 列和 列元素相同,表明 i 和 j 两个特征之前的协方差

协方差对角化

初始目标和场景为:
  • 有 m 个 n 维样本数据,设原始数据为 为 n 行 m 列的矩阵。
  • 想找到一个基 ,使得 ,其中 ,达到降维的目的
的协方差矩阵为 的协方差矩阵为 ,且
  • 目的为 D 的方差大,协方差为0
为能使原始协方差矩阵对角化的 ,是协方差矩阵 的特征向量单位化按行排列出的矩阵,如果 按照特征值排列,则用 行组成的矩阵乘以原始数据矩阵 ,就得到我们需要降维后的数据矩阵

PCA 算法

设有 m 条 n 维数据
  1. 将原始数据排列成矩阵
  1. 的每一行(代表一个特征)进行零均值化,即减去这一行的均值
  1. 求出协方差矩阵
  1. 求出协方差矩阵 得特征值和对应的特征向量
  1. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前 行组成矩阵 P
  1. 即为降维到 k 维后的数据

代码实现

PCA算法实现

  • 数据集
notion image
  • PCA
  • 查看主成分的特征向量
输出:array([[0.42746553, 0.90403165]])
  • pca.components_是一个二维数组(矩阵),形状为 (n_components, n_features),其中 n_components 是你指定或自动选择的主成分的数量,n_features 是原始数据的特征数量。
  • 这个矩阵的每一行都是一个主成分对应的特征向量。换句话说,每一行向量表示原始数据中每个特征在该主成分上的投影系数。
代码文件:

PCA实现降维任务

  • 数据集
  • 降维实现
  • 每个特征方向的方差比例的大小,可以选择舍弃那些不要的信息量小的
  • 方差所占比例
notion image
  • 可以根据所需数据多少选择对应的 components
代码文件:

PCA在数据降噪中的应用

  • 数据集——手写数字数据集
  • 绘图
  • 加上噪声
  • 降噪
                   原始图像
原始图像
                   加了噪声
加了噪声
                   进行降噪
进行降噪
代码文件:

PCA在人脸识别中的作用

  • 数据集——人脸数据集
  • PCA
  • 通过 SVM 进行人脸识别
进行 PCA 后速度更快,准确率影响不大
代码文件:

优缺点和适用条件

优点

  • 简单容易计算
  • 降低特征选择工作量,降低开销
  • 不要求数据正态分布,无参数限制,不受样本标签限制
  • 有效去除噪声,使事物易于使用

缺点

  • 非高斯分布情况下,PCA得到的主元可能并非最优,ICA可能效果更好
  • 特征值分解的方法有一定局限性
  • 降维后存在信息丢失
  • 主成分解释较原始数据模糊

适用条件

  • 变量间有较强相关性的数据
  • 数据压缩、预处理
  • 数据降维、噪声去除
  • 高维数据集探索与可视化
概率图模型 决策树
Loading...