ecn*_*113 12 python scikit-learn
我一直在使用scikit-learn中的普通PCA,并且没有任何问题地获得每个主成分的方差比.
pca = sklearn.decomposition.PCA(n_components=3)
pca_transform = pca.fit_transform(feature_vec)
var_values = pca.explained_variance_ratio_
Run Code Online (Sandbox Code Playgroud)
我想使用内核PCA探索不同的内核,并且还想要解释的方差比,但我现在看到它没有这个属性.有谁知道如何获得这些价值观?
kpca = sklearn.decomposition.KernelPCA(kernel=kernel, n_components=3)
kpca_transform = pca.fit_transform(feature_vec)
var_values = kpca.explained_variance_ratio_
Run Code Online (Sandbox Code Playgroud)
AttributeError:'KernelPCA'对象没有属性'explain_variance_ratio_'
Eel*_*aak 11
我知道这个问题已经过时了,但是当我意识到这pca.explained_variance_只是组件的变化时,我遇到了同样的"问题"并找到了一个简单的解决方案.您可以通过执行以下操作来简单地计算解释的方差(和比率):
kpca_transform = kpca.fit_transform(feature_vec)
explained_variance = numpy.var(kpca_transform, axis=0)
explained_variance_ratio = explained_variance / numpy.sum(explained_variance)
Run Code Online (Sandbox Code Playgroud)
并且作为奖励,要获得累积比例解释方差(通常用于选择组件和估计空间的维度):
numpy.cumsum(explained_variance_ratio)
Run Code Online (Sandbox Code Playgroud)
K-PCA 没有的主要原因explained_variance_ratio_是因为在您的数据/向量的内核转换之后存在于不同的特征空间中。因此,不应像 PCA 那样解释 K-PCA。
| 归档时间: |
|
| 查看次数: |
7371 次 |
| 最近记录: |