1 主成分分析(PCA)
目的:PCA旨在通过将数据投影到一个低维空间来减少数据的维数,同时尽可能保留数据的方差。
实现步骤:
-
标准化数据:首先,数据集中的每个特征要进行标准化处理,使得每个特征的均值为0,标准差为1。
-
计算协方差矩阵:对于标准化后的数据,计算其协方差矩阵。协方差矩阵的元素表示数据集各个特征之间的线性相关性。
-
计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征值表示投影到相应特征向量上的数据的方差大小。
-
选择主成分:选择前k个最大的特征值及其对应的特征向量,作为新的基向量。这个k通常是根据累计方差解释比例来选择的。
-
转换数据:将原始数据投影到这些选定的特征向量上,得到降维后的数据。
优点:
- 降低数据的维度,减少计算复杂度。
- 去除数据中的噪声,提高模型性能。
缺点:
- PCA是无监督学习方法,不考虑类别信息。
- 只能找到线性相关的主成分。
2 线性判别分析(LDA)
目的:LDA旨在找到一个投影方向,使得投影后的数据在同类之间的距离最小,而在不同类之间的距离最大。因此,LDA是一种有监督的降维方法,常用于分类任务。
实现步骤:
-
计算类内散布矩阵(Within-class scatter matrix):计算每个类别数据点到该类别均值的散布矩阵,并将其加总得到类内散布矩阵。
-
计算类间散布矩阵(Between-class scatter matrix):计算每个类别均值与总体均值的散布矩阵,并将其加权加总得到类间散布矩阵。
-
计算判别方向:通过最大化类间散布矩阵和类内散布矩阵的比值,求解广义特征值问题,得到特征值和特征向量。特征向量即为判别方向。
-
选择特征向量:选择前k个最大的特征值对应的特征向量,作为新的基向量。
-
转换数据:将原始数据投影到这些选定的特征向量上,得到降维后的数据。
优点:
- 考虑了类别信息,可以增强分类效果。
- 可以用于二分类和多分类任务。
缺点:
- 假设数据服从正态分布,且类别间的协方差矩阵相同,这在实际中未必总是成立。
- 对于特征维度远大于样本数量的情况(如高维小样本数据),效果可能不佳。
总结
- PCA 主要用于无监督的降维,通过最大化方差来找到数据的主要成分,适合数据探索和可视化。
- LDA 用于有监督的降维,通过最大化类间差异和最小化类内差异来找到最佳分类方向,适合分类任务。
3 个人总结
PCA 适用于数据集没有类别标签时。原因:PCA的主要目的是通过正交变换将原始特征空间中的线性相关特征转换为线性无关特征,从而提取出数据中的主要成分,这些成分能够最大程度地保留原始数据中的方差。在这个过程中,PCA并没有利用数据的类别标签信息。比较适用于回归问题,回归问题虽然有目标变量(标签),但其目标变量是连续值,而不是离散的类别标签。在这种情况下,PCA可能更适合,因为它主要关注特征之间的方差和协方差,而不是类别之间的分离度。
LDA 适用于数据集有类别标签时。并且需要在降维的同时保留类别信息以便于分类任务时使用。原因:LDA的目标是寻找一个投影方向,使得同类样本的投影点尽可能接近,不同类样本的投影点尽可能远离。实现过程中需要识别同类样本,用到了类别信息,也就是离散的标签,因此LDA更适用于有类别标签的分类问题。