对训练集和测试集的PCA方法

假如输入的训练集形状为 X 1 ∈ R n 1 × m X_{1}\in R^{n_{1} \times m} X1Rn1×m
这里 n 1 n_{1} n1为训练集样本数, m m m为数据的原始维度。同理,测试集形状为
X 2 ∈ R n 2 × m X_{2} \in R^{n_{2}\times m} X2Rn2×m
设我们需要的更加紧致的维度为 k k k,则需要以下的步骤:

  1. 对训练集做均值化,这里是指在每一个维度上计算均值,然后减去均值,即
    a v e r a g e ( X 1 ) ∈ R n 1 average(X_{1}) \in R^{n_{1}} average(X1)Rn1
    X 1 j = X 1 j − a v e r a g e ( X 1 ) , j = 1 , 2 , . . . , n 1 X_{1}^{j} = X_{1}^{j}-average(X_{1}) , j=1,2,...,n_{1} X1j=X1javerage(X1),j=1,2,...,n1
  2. 求协方差矩阵 C = X 1 T X 1 / n 1 ∈ R m × m C = X_{1}^{T}X_{1}/n_{1} \in R^{m\times m} C=X1TX1/n1Rm×m
  3. 对 C 做特征值分解,求出最大的k的特征值,以及对应的k个特征向量。按照降序的方式,把特征向量按列排成一个矩阵 P ∈ R m × k P \in R^{m\times k} PRm×k
  4. 对训练集和测试集分别乘上P,得到降维后的数据,即
    X 1 ′ = X 1 P ∈ R n 1 × k X_{1}^{'} = X_{1}P\in R^{n{1}\times k} X1=X1PRn1×k
    X 2 ′ = X 2 P ∈ R n 1 × k X_{2}^{'} = X_{2}P\in R^{n{1}\times k} X2=X2PRn1×k

谨记:只能对训练集降维,把得到的降维矩阵保留,用于对测试集的降维。这是因为,测试集对我们来说,模型生成之前都是不可知的,所以不能使用任何关于测试集的信息。

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值