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

本文详细介绍了一种常用的数据降维方法——主成分分析(PCA),包括其数学原理和具体实现步骤。通过对训练集进行均值化处理、计算协方差矩阵并进行特征值分解等操作,最终实现将高维数据映射到低维空间,同时保留数据的主要特征。

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

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

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

在Python中,PCA(主成分分析)是一种常用的度ality reduction技术,用于减少数据的特征数,同时尽量保持数据的主要信息。当你有大量特征但目标变量之间的相关性较高时,可以使用PCA来提取数据的主要成分(即线性组合后的特征),通常保留前几个主成分就可以达到很好的效果。 对于训练集测试集,处理方式是一样的。首先,你需要对两部分数据进行预处理,比如标准化或归一化,确保每个特征都在相同的尺度上。然后,你可以创建PCA对象,如`sklearn.decomposition.PCA()`,并对其进行拟合(fitting),传入训练集的数据。接着,使用`transform()`方法训练集测试集转换到低空间。记得在变换之后,分别保存这两个低版本的数据,因为后续模型可能会基于后的数据进行训练评估。 这里是一个简单的步骤概述: ```python from sklearn.decomposition import PCA import pandas as pd # 加载数据 train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') # 数据预处理 train_data_standardized = StandardScaler().fit_transform(train_data) test_data_standardized = StandardScaler().fit_transform(test_data) # 创建PCA对象 pca = PCA(n_components=新的组件数量) # 例如50或根据需要选择 # 拟合训练数据 pca.fit(train_data_standardized) # 训练集测试集 train_pca = pca.transform(train_data_standardized) test_pca = pca.transform(test_data_standardized) # 保存后的数据 np.save('train_pca.npy', train_pca) np.save('test_pca.npy', test_pca) ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值