PCA降维技术详解:从N维到K维的主成分映射

版权申诉
0 下载量 175 浏览量 更新于2024-10-14 收藏 5KB RAR 举报
资源摘要信息:"PCA方法是一种数据降维技术,其核心思想是通过线性变换将多维数据映射到新的坐标系统中,以便获得数据的主要特征。PCA通过寻找数据中的主成分(principal components),这些主成分是数据变异性最大的方向,从而可以用来减少数据集的维数,同时尽可能保留原始数据的信息。 PCA降维的步骤通常包括以下几个关键步骤: 1. 数据标准化:由于PCA对于数据的尺度非常敏感,因此在进行PCA之前,通常需要对原始数据进行标准化处理,即让数据的均值为0,方差为1。 2. 计算协方差矩阵:协方差矩阵描述了各个维度特征之间的相关性。在标准化处理后的数据基础上,计算数据的协方差矩阵能够反映出不同特征之间的相关性。 3. 求协方差矩阵的特征值和特征向量:通过求解协方差矩阵的特征值和对应的特征向量,可以得到数据的主成分。特征值代表了对应主成分的方差大小,特征向量代表了特征值的方向。 4. 选择主成分:根据特征值的大小,可以选择前K个最大的特征值对应的特征向量,这些特征向量构成了数据降维后的新坐标轴。 5. 形成投影矩阵:根据所选的特征向量,形成一个投影矩阵(即变换矩阵)。 6. 将数据投影到新的空间:将原始数据集乘以投影矩阵,得到降维后的数据。 PCA的应用领域非常广泛,包括但不限于: - 图像处理:用于图像压缩和特征提取。 - 机器学习:用于数据预处理,帮助提高后续算法的性能。 - 生物信息学:用于分析基因表达数据和疾病分类。 - 金融分析:用于风险管理和资产配置。 在标签中提到的“pca降维”,“主元分析”,“主成分分析”以及“主成分分析pca”都是PCA的不同说法,它们指的都是同一种技术。 压缩包子文件的文件名称列表中只有“PCA”一个文件,这表明当前资源可能仅包含关于PCA方法的单一文件。如果该文件是教程或者详细说明,可以期待从中获得PCA理论的深入讲解、实际应用案例分析,以及可能的代码实现等。"

import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from mpl_toolkits.mplot3d import Axes3D from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler data=pd.read_csv('H:/analysis_results/mean_HN.csv') data.head() x=data.iloc[:,1:7] y=data.iloc[:,6] scaler=StandardScaler() scaler.fit(x) x_scaler=scaler.transform(x) print(x_scaler.shape) pca=PCA(n_components=3) x_pca=pca.fit_transform(x_scaler) print(x_pca.shape) #查看各个主成分对应的方差大小和占全部方差的比例 #可以看到前2个主成分已经解释了样本分布的90%的差异了 print('explained_variance_:',pca.explained_variance_) print('explained_variance_ratio_:',pca.explained_variance_ratio_) print('total explained variance ratio of first 6 principal components:',sum(pca.explained_variance_ratio_)) #将分析的结果保存成字典 result={ 'explained_variance_:',pca.explained_variance_, 'explained_variance_ratio_:',pca.explained_variance_ratio_, 'total explained variance ratio:',np.sum(pca.explained_variance_ratio_)} df=pd.DataFrame.from_dict(result,orient='index',columns=['value']) df.to_csv('H:/analysis_results/Cluster analysis/pca_explained_variance_HN.csv') #可视化各个主成分贡献的方差 #fig1=plt.figure(figsize=(10,10)) #plt.rcParams['figure.dpi'] = 300#设置像素参数值 plt.rcParams['path.simplify'] = False#禁用抗锯齿效果 plt.figure() plt.plot(np.arange(1,4),pca.explained_variance_,color='blue', linestyle='-',linewidth=2) plt.xticks(np.arange(1, 4, 1))#修改X轴间隔为1 plt.title('PCA_plot_HN') plt.xlabel('components_n',fontsize=16) plt.ylabel('explained_variance_',fontsize=16) #plt.savefig('H:/analysis_results/Cluster analysis/pca_explained_variance_HN.png') plt.show(),想要将得出的结果value为3个标签PC1,PC2,PC3,如何修改

2023-06-10 上传
2023-06-10 上传