本文整理自
- 长路漫漫2021的原创博客:sklearn基础篇(九)-- 主成分分析(PCA)
- 李春春_的原创博客:主成分分析(PCA)原理详解
- bilibili视频:用最直观的方式告诉你:什么是主成分分析PCA
- 特征选择的问题,其实就是要剔除的特征主要是和类标签无关的特征。而这里的特征很多是和类标签有关的,但里面存在噪声或者冗余。在这种情况下,需要一种特征降维的方法来减少特征数,减少噪音和冗余,减少过度拟合的可能性。
- PCA的思想是将n维特征映射到k维上(k
是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
哔哩哔哩视频网址,呜呜呜强推!(这个视频用的是特征值分解算法)
SVD奇异值分解补充
接下来是堆公式环节
以下公式推导主要参考:刘建平Pinard——主成分分析(PCA)原理总结,详细原理可以阅读:降维——PCA(非常详细)。
以上部分参考了sklearn基础篇(九)-- 主成分分析(PCA),不过结合那个哔哩哔哩视频,个人感觉PCA这一算法的流程其实就是:
- 数据预处理:将原始数据进行标准化或归一化处理,完成去中心化。
- 计算协方差矩阵:将处理后的数据进行协方差矩阵的计算,得到协方差矩阵。
- 特征值分解:对协方差矩阵进行特征值分解,得到特征值和特征向量。
- 特征值排序:将所有特征值从大到小排序,选择前k个特征值对应的特征向量作为新的基向量。
- 生成新的特征空间:将原始数据投影到新的特征空间中,得到降维后的数据。包括拉伸(特征值)和旋转(特征向量)。
输入:m×n样本矩阵X,每一行元素均值为0。这里每一行是一个特征。
输出:k×n样本主成分矩阵Y
参数:主成分个数k