声明:以下内容来自多个作者的文章总结。参考:
1.主成分分析(PCA)与t-SNE_pca和t-sne-CSDN博客
2.https://juejin.cn/post/7315125212852928550
一. PCA(Principal Component Analysis)
(1)基本原理
PCA是一种线性降维技术,通过寻找数据中方差最大的方向来进行降维。其基本思路是将原始数据投影到一些互相正交的主成分上,这些主成分按解释数据方差的大小排序。
PCA的主要目标就是求解转换矩阵,我们需要预先定义目标函数,在PCA中,有以下两个优化目标:
(1)最小化重构误差
(2)最大化投影后的方差。
注:最小化重构误差是指通过降维找到最优的低维空间,使得在该空间中重建原始数据时误差最小。
1.1 什么是中心化处理?
中心化处理的核心是将数据集中的每个特征的均值变为零。对于一个数据集中的每个特征(变量),我们计算该特征在所有样本中的平均值,然后从每个样本的该特征值中减去这个平均值。这相当于将数据的原点平移到所有样本的均值位置。
1.2. 为什么需要进行中心化处理?
中心化处理在PCA中非常重要,因为PCA的目标是通过线性变换找到最大化数据方差的主成分方向,而这些主成分是基于数据的协方差矩阵进行计算的。协方差矩阵衡量了数据中每对特征之间的线性相关性,而这些计算都依赖于特征的均值。
原因1:消除偏移
如果不对数据进行中心化处理,特征的均值不为零,PCA在计算协方差矩阵时会受特征的偏移影响。例如,假设某些特征有很大的均值(远离原点),这将导致主成分偏向这些特征,从而扭曲了数据的真实结构。中心化能够去除这种偏移,使得PCA能够仅关注数据的变化(即方差),而不考虑绝对值的大小。
原因2:优化主成分方向
PCA的目标是找到那些能解释数据方差最大的方向。如果数据没有经过中心化,主成分的方向可能会受到均值的影响,导致计算的主成分不能真实反映数据的变化趋势。通过中心化,我们确保主成分的方向是基于数据点相对于其均值的变化来确定的,这样主成分能够更好地表示数据的方差结构。
原因3:重构误差最小化
PCA通过最小化重构误差来降维,即找到最优的低维空间,使得降维后的数据能够尽可能准确地重构原始数据。未中心化的数据在重构时会包含均值的影响,从而使得重构误差不准确。中心化后,数据围绕均值对称,主成分更能捕捉数据的真实变化,使得重构误差更小。
1.3总结
中心化处理:将每个特征的均值变为零,使数据围绕原点对称。
作用:消除特征的偏移,确保PCA捕捉数据的真实变化,优化主成分方向,从而最小化重构误差。
本质:通过将数据中心化,使得PCA基于方差最大化的原理能够更准确地反映数据的结构。
2.最大化投影后的方差。
它指的是在降维过程中,PCA选择数据中最重要的主成分方向,使得投影到这些方向的样本点的方差最大。
2.1. 什么是最大化投影后的方差?
PCA试图将高维数据投影到一个低维空间,同时尽量保留数据的主要信息。主要信息通常被定义为数据的方差,即数据的变化或分布的广度。方差大的方向意味着数据沿这个方向分布得更广,包含更多的信息,而方差小的方向则包含的信息较少。
因此,PCA的目标是找到一些正交的主成分(即方向),使得:
- 每个主成分是数据方差最大的方向。
- 投影到这些方向后,数据的方差最大化,即主成分解释尽可能多的原始数据变化。
3. 为什么最大化投影后的方差?
PCA假设方差大的方向包含更多的有用信息,因此希望将数据投影到这些方差最大的方向上。通过最大化投影后的方差,PCA能够:
1.保留信息量:投影到方差大的方向后,数据点之间的差异被最大化,这样可以在低维空间中尽量多地保留原始数据的信息。
2.数据压缩:通过选择前几个方差较大的主成分,PCA可以有效地将数据压缩成较低的维度,而不会丢失太多有用信息。
3.简化模型:在机器学习任务中,使用较低维度的特征往往可以提高模型的泛化能力,减少过拟合。
主要步骤包括:
(1) 计算数据的协方差矩阵。
(2) 对协方差矩阵进行特征值分解或奇异值分解(SVD)。
(3) 选择前几个最大特征值对应的特征向量作为主成分。
用这些主成分重构低维数据。
(2)优点
- 线性可解释性:PCA是基于线性变换的,结果易于解释。每个主成分是原始变量的线性组合。
数据压缩:能够通过选取前几个主成分实现数据压缩,同时保留大部分数据信息(方差)。
计算效率高:PCA的计算复杂度较低,适合大数据集。
(3)缺点
只处理线性关系:PCA只能捕捉数据中的线性关系,对于非线性结构效果较差。
方差解释:PCA假设最大方差的方向具有最多的信息,但这未必总是有用的假设。
(4)适用场景
PCA通常用于数据降维、特征提取、数据压缩等场景,尤其在数据的高维特征线性相关时表现出色。
二. t-SNE(t-distributed Stochastic Neighbor Embedding分布式随机邻域嵌入)
(1)基本原理
t-SNE是一种非线性降维技术,特别擅长将高维数据嵌入到二维或三维空间中进行可视化。它通过将高维空间中相似的数据点在低维空间中保持接近,而将不相似的点尽量远离。其核心步骤包括:
1.计算高维空间中每对数据点之间的相似性(基于条件概率)。
2.在低维空间中初始化点,并计算低维空间中数据点之间的相似性。
3.通过梯度下降优化低维空间中的位置,尽量保持高维空间和低维空间中的相似性一致。
算法原理
t-SNE的核心思想是通过对数据的高斯相似度和二维欧氏距离进行优化,从而将高维数据压缩为低维数据。具体步骤如下:
- 计算数据的均值向量。
- 计算数据的高斯相似度矩阵。
- 计算数据的欧氏距离矩阵。
- 通过优化目标函数,计算数据的低维坐标。
(2)优点
处理非线性结构:t-SNE能捕捉高维数据中的复杂非线性关系。
优异的可视化效果:尤其适用于高维数据的二维或三维可视化,常用于展示数据的聚类结构。
(3)缺点
计算复杂度高:t-SNE的计算复杂度较高,尤其在处理大规模数据时速度较慢。
结果不稳定:t-SNE对超参数(如perplexity)敏感,且不同次运行的结果可能不同。
不保留全局结构:t-SNE更关注局部邻域的关系,可能丢失全局结构信息,因此不适合用于数据压缩或特征提取。
(4)适用场景
t-SNE主要用于高维数据的可视化,例如在机器学习中的特征可视化、降维后探索数据的聚类或分类趋势等。常用于图像、文本和基因数据的探索性分析。
总结表格
特性 | PCA | t-SNE |
---|---|---|
类型 | 线性降维 | 非线性降维 |
目标 | 最大化投影后的方差,保留全局结构 | 保留数据局部邻域结构 |
计算复杂度 | 低,适合大规模数据 | 高,适合中小规模数据 |
结果的可解释性 | 强,线性主成分 | 弱,非线性嵌入 |
稳定性 | 稳定 | 对超参数敏感,结果不稳定 |
保留结构 | 全局结构 | 局部结构 |
应用场景 | 降维、特征提取、数据压缩 | 数据可视化,展示聚类趋势 |
超参数 | 只需指定降维目标维度 | 多个关键超参数需要调节 |
适用数据类型 | 线性或接近线性数据 | 高维复杂数据,可视化 |
- PCA适合用于线性降维和解释数据的全局结构,特别是在特征提取、降维和数据压缩时表现良好。
- t-SNE更适合高维复杂数据的可视化,尤其是展示数据的局部结构和聚类趋势。