【问题标题】:Issue with the results of PCA component valuesPCA 组件值的结果存在问题
【发布时间】:2018-08-05 04:33:20
【问题描述】:

我正在使用以下简单代码对包含(28 个特征 + 1 个类标签)和 11M 行(样本)的数据集执行 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]

根据解释的_variance_ratio_,我不知道这里是否有问题。最高的部分是 11%,与我们应该从 99% 等开始的事实相反。这是否意味着数据集需要一些预处理,例如确保数据处于正态分布?

【问题讨论】:

    标签: machine-learning pca


    【解决方案1】:

    老兄,第一个组件的 99% 意味着与最大的 eigenvalue 关联的轴编码了数据集中 99% 的方差。任何数据集都很少出现这种情况。否则,问题会缩小为1-D 分类/回归问题。
    此输出没有任何问题。保留编码大约 80% 方差的第一个轴并构建您的模型。
    注意:PCA 转换通常用于减少问题空间的维度。由于您只有 28 个变量,我建议完全放弃 PCA

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多