PCA 主成分分析法,是当今最流行的降维算法之一。其中又分为核PCA,线性PCA,对应于不同形态的数据降维
他识别最靠近数据集的超平面,然后将数据投影到这个超平面上。
从上面的图中,可以发现将数据投影到C1这个轴上能保留最大的差异性,其他两条虚线保留的差异性比C1实线少,而选择一条能保留最大差异性的轴就是PCA降维技术比较简单的思想。
PCA算法可以找到对差异贡献最大的轴,以及一条和这个轴正交的轴,在上图中C2,C2是对剩余的差异性贡献最大的轴,因为上图是一个二维数据,在更高维的数据中找到与前两条线正交的第三第四条等,数量可以和数据集的维度相同。
而找到的第i个轴就是第i个主要成分。
可以通过SVD(奇异值分解)的标准矩阵分解方法寻找主要成分,这个技术可以将矩阵χ分解成三个矩阵其中V包含定义所有主成分的单位向量。
假使自己编程实现记得要居中数据,居中的过程就是 X-X.mean()。我一般直接使用sklearn的pca模块实现,它会自动居中数据。
一旦我们确定投影的维度,就可以将训练数据集投影到维度d的超平面,同时得到维度d的简化数据集Xd。
计算训练数据集矩阵X和矩阵Wd的点积,Wd是包含V的前d列的矩阵(V是奇异值分解而来)。