首页 > 解决方案 > 如何知道 PCA 中特征值的顺序

问题描述

我在 python 中进行了 Pca 分析。而且,我得到了分析的特征值,但我不知道我的数据集的哪些变量在组件中表示。有一种方法可以知道哪些组件代表我的数据的每个变量:

例如:4.669473069609005对应sillas等...

这是文件: https ://storage.googleapis.com/min_ambiente/servi_acc/datos.csv

这是代码:

# I have libraries es for some other methods I Implemented here.


import pandas as pd
import numpy as np
import random
import matplotlib.pyplot as plt
from google.cloud import bigquery
from sklearn.preprocessing import StandardScaler
from factor_analyzer.factor_analyzer import calculate_bartlett_sphericity
from factor_analyzer.factor_analyzer import calculate_kmo
from factor_analyzer import FactorAnalyzer
%matplotlib inline

#load csv
from google.colab import files
uploaded = files.upload()

data = pd.read_csv("datos.csv") 

data.fillna(0, inplace=True)
a,b = data.shape
X= data.iloc[:,0:b-1]
X.head()

在此处输入图像描述

#####################################################
###Estandarizar y realizar la matriz de covarianza###
#####################################################
#Standardize features by removing the mean and scaling to unit variance
#used for generating learning model parameters from training data and
#generate transformed data set
X_std = StandardScaler().fit_transform(X)
mean_vec = np.mean(X_std, axis=0)
cov_mat = (X_std - mean_vec).T.dot((X_std - mean_vec)) / (X_std.shape[0]-1)

###Valores y vectores propios obtenidos de la matriz covarianza
cov_mat = np.cov(X_std.T)
eig_vals, eig_vecs = np.linalg.eig(cov_mat)

dictionary = dict(zip(lst2, lst1))
print(dictionary)
###print from the highest to the lowest
eig_pairs.sort()
eig_pairs.reverse()


print('eigenvalues in descending order :')
for i in eig_pairs:
    print(i[0])

标签: pythonpca

解决方案


推荐阅读