假如输入的训练集形状为 X1∈Rn1×m X_{1}\in R^{n_{1} \times m}X1∈Rn1×m
这里n1n_{1}n1为训练集样本数,mmm为数据的原始维度。同理,测试集形状为
X2∈Rn2×mX_{2} \in R^{n_{2}\times m}X2∈Rn2×m
设我们需要的更加紧致的维度为kkk,则需要以下的步骤:
- 对训练集做均值化,这里是指在每一个维度上计算均值,然后减去均值,即
average(X1)∈Rn1average(X_{1}) \in R^{n_{1}}average(X1)∈Rn1
X1j=X1j−average(X1),j=1,2,...,n1 X_{1}^{j} = X_{1}^{j}-average(X_{1}) , j=1,2,...,n_{1}X1j=X1j−average(X1),j=1,2,...,n1 - 求协方差矩阵 C=X1TX1/n1∈Rm×mC = X_{1}^{T}X_{1}/n_{1} \in R^{m\times m}C=X1TX1/n1∈Rm×m
- 对 C 做特征值分解,求出最大的k的特征值,以及对应的k个特征向量。按照降序的方式,把特征向量按列排成一个矩阵P∈Rm×kP \in R^{m\times k}P∈Rm×k
- 对训练集和测试集分别乘上P,得到降维后的数据,即
X1′=X1P∈Rn1×kX_{1}^{'} = X_{1}P\in R^{n{1}\times k}X1′=X1P∈Rn1×k
X2′=X2P∈Rn1×kX_{2}^{'} = X_{2}P\in R^{n{1}\times k}X2′=X2P∈Rn1×k
谨记:只能对训练集降维,把得到的降维矩阵保留,用于对测试集的降维。这是因为,测试集对我们来说,模型生成之前都是不可知的,所以不能使用任何关于测试集的信息。
本文详细介绍了一种常用的数据降维方法——主成分分析(PCA),包括其数学原理和具体实现步骤。通过对训练集进行均值化处理、计算协方差矩阵并进行特征值分解等操作,最终实现将高维数据映射到低维空间,同时保留数据的主要特征。
2321





