【发布时间】: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