python - 如何知道 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])
解决方案
推荐阅读
- powerbi - 使用相对日期过滤器用零代替空格
- sql - 如何在 SQL 中选择最近的行日期?
- python - 如何在 Python 中打印出 for 循环的每次迭代?
- solr - 我的 systemd Solr 服务将无法启用。没有错误信息
- javascript - 如何在 SVG 图像上创建弹出气球?
- verilog - systemVerilog 中的逐位否定
- asp.net - MVC如何在动作参数中传递两个输入文本
- python - Python3:在不中断导入的情况下将包含子类/超类的自包含 git 子模块导入更大的项目结构
- r - 试图抓取到 csv 文件
- php - 如何在php中关闭模态后删除消息