PCA组件值结果的问题

时间:2018-08-05 04:33:21

标签: machine-learning pca

我正在使用以下简单代码对(28个要素+ 1个类标签)和1100万行(样本)的数据集执行PCA:

from sklearn.decomposition import PCA
import pandas as pd

df = pd.read_csv('HIGGS.csv', sep=',', header=None)

df_labels = df[df.columns[0]]
df_features = df.drop(df.columns[0], axis=1)
pca = PCA()
pca.fit(df_features.values)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_ratio_.shape)
transformed_data = pca.transform(df_features.values)

pca.explained_variance_ratio_(或特征值)如下:

[0.11581302 0.09659324 0.08451179 0.07000956 0.0641502  0.05651781
 0.055588   0.05446682 0.05291956 0.04468113 0.04248516 0.04108151
 0.03885671 0.03775394 0.0255504  0.02181292 0.01979832 0.0185323
 0.0164828  0.01047363 0.00779365 0.00702242 0.00586635 0.00531234
 0.00300572 0.00135565 0.00109707 0.00046801]

基于explained_variance_ratio_,我不知道这里是否有问题。最高组成部分是11%,与之相反的是,我们应该以99%左右的价格开始获取值。是否意味着数据集需要进行一些预处理,例如确保数据处于正态分布?

1 个答案:

答案 0 :(得分:2)

Dude,第一个分量的99%表示与最大eigenvalue关联的轴编码了数据集中99%的方差。任何数据集都有这种情况是非常罕见的。否则,问题将缩小为1-D分类/回归问题。
此输出没有错。保留编码大约80%的方差的第一个轴并建立模型。
注意:PCA转换通常用于减小问题空间的尺寸。由于您只有28个变量,因此建议您完全放弃PCA