因此,我有一个由难度级别注释的700个文本的数据集。每个文本都有150个功能:
feature_names = ['F1','F2','F3'...] shape (1, 150)
features_x = ['0.1','0,765', '0.543'...] shape (700, 150)
correct_answers_y = ['1','2','4'...] shape (1,700)
我想使用PCA来找出最有用的功能集,例如:
Component1 = 0,76*F1+0.11*F4-0.22*F7
我该怎么做?Sklearn用户盖德的代码有一些数字作为输出,但我不明白如何解开它们。
fit_xy = pca.fit(features_x,correct_answers_y)
array([ 4.01783322e-01, 1.98421989e-01, 3.08468655e-01,
4.28813755e-02, ...])
不确定该数组的来源,但看起来像explained_variance_
或explained_variance_ratio_
属性的输出。他们正如他们所说的;与您的数据相比,解释了差异和解释的差异。通常,在执行PCA时,您要定义要从数据中保留的最小值比率。
可以说,您想保持数据中至少90%的差异。此代码可以查找您需要多少个原理组件(PCA中的n_components
参数(:
pca_cumsum = pca.explained_variance_ratio_.cumsum()
pca_cumsum
>> np.array([.54, .79, .89, .91, .97, .99, 1])
np.argmax(pca_cumsum >= 0.9)
>> 3
正如沙漠纳特所说的;标签将被忽略,因为它在PCA中未使用。