import pandas as pd data = pd.read_excel('C:\Users\home\Desktop\新建文件夹(1)\支撑材料\数据\111.xlsx','Sheet5',index_col=0) data.to_csv('data.csv',encoding='utf-8') import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv(r"data.csv", encoding='utf-8', index_col=0).reset_index(drop=True) df from sklearn import preprocessing df = preprocessing.scale(df) df covX = np.around(np.corrcoef(df.T),decimals=3) covX featValue, featVec= np.linalg.eig(covX.T) featValue, featVec def meanX(dataX): return np.mean(dataX,axis=0) average = meanX(df) average m, n = np.shape(df) m,n data_adjust = [] avgs = np.tile(average, (m, 1)) avgs data_adjust = df - avgs data_adjust covX = np.cov(data_adjust.T) covX featValue, featVec= np.linalg.eig(covX) featValue, featVec tot = sum(featValue) var_exp = [(i / tot) for i in sorted(featValue, reverse=True)] cum_var_exp = np.cumsum(var_exp) plt.bar(range(1, 14), var_exp, alpha=0.5, align='center', label='individual explained variance') plt.step(range(1, 14), cum_var_exp, where='mid', label='cumulative explained variance') plt.ylabel('Explained variance ratio') plt.xlabel('Principal components') plt.legend(loc='best') plt.show() eigen_pairs = [(np.abs(featValue[i]), featVec[:, i]) for i in range(len(featValue))] eigen_pairs.sort(reverse=True) w = np.hstack((eigen_pairs[0][1][:, np.newaxis], eigen_pairs[1][1][:, np.newaxis])) X_train_pca = data_adjust.dot(w) colors = ['r', 'b', 'g'] markers = ['s', 'x', 'o'] for l, c, m in zip(np.unique(data_adjust), colors, markers): plt.scatter(data_adjust,data_adjust, c=c, label=l, marker=m) plt.xlabel('PC 1') plt.ylabel('PC 2') plt.legend(loc='lower left') plt.show()
时间: 2024-04-01 11:35:55 浏览: 151
pandas合并、处理csv文件、随机抽样
这段代码是在进行主成分分析(PCA)的数据预处理和可视化操作。首先读取一个 Excel 文件并将其转换为 CSV 格式,然后使用 sklearn 库中的 preprocessing 模块对数据进行标准化处理,接着计算数据集的协方差矩阵并求解其特征值和特征向量,用于评估数据集的主要特征。随后,进行主成分分析,将数据集映射到低维空间,以便进行可视化展示。最后,使用 matplotlib 库进行可视化处理,展示数据在主成分空间中的分布情况。整个代码块的目的是为了帮助数据科学家更好地理解数据集的特征和分布情况,从而更好地进行建模和分析。
阅读全文