【问题标题】:more than 40 features causing error in kernelpca scikit learn超过 40 个导致 kernelpca scikit learn 错误的功能
【发布时间】:2018-06-22 03:32:06
【问题描述】:

当我将内核 PCA 的功能数量设置为 40 以上时,会出现如下错误:

/opt/conda/lib/python3.6/site-packages/sklearn/decomposition/kernel_pca.py:262: 
RuntimeWarning: invalid value encountered in sqrt
  X_transformed = self.alphas_ * np.sqrt(self.lambdas_)

下面是我使用的代码:

from sklearn.decomposition import PCA, KernelPCA
from sklearn import svm
import numpy as np

print(testX.shape,np.isnan(testX_yaleA.all()),np.isfinite(testX_yaleA.all()))
(41, 77760) False True

kpca_rbf = KernelPCA(41,kernel="rbf", fit_inverse_transform=False, gamma=0.01)
Xtest_kpca = kpca_rbf.fit_transform(testX_yaleA)

我很困惑为什么会发生这种情况,可能是由于数组的大小(41,77760)?

【问题讨论】:

  • 你能提供你的数据样本吗?给定消息,它看起来更像是一个算术警告,而不是内存问题。同样,这是一个警告,您的 pca 是否失败?
  • 我会尽快提供样品。另外,如果我指定的维度多于样本数,则 kpca 不会失败,但是,无论我指定什么,它都会返回与样本数相同的组件数。

标签: python numpy scipy scikit-learn feature-extraction


【解决方案1】:

我能够用其中一个 sklearn 数据集复制它。

from sklearn.datasets import load_iris
form sklearn.decomposition import KernelPCA

iris = load_iris()
data = iris.data
target = iris.target
data.shape
(150, 4)

kpca = KernelPCA(4, kernel='rbf', fit_inverse_transform=False, gamma=0.01)
transformed = kpca.fit_transform(data)
transformed.shape
(150, 4)

kpca = KernelPCA(150, kernel='rbf', fit_inverse_transform=False, gamma=0.01)
transformed = kpca.fit_transform(data)
/Users/grr/anaconda/lib/python3.6/site-packages/sklearn/decomposition/kernel_pca.py:264: RuntimeWarning: invalid value encountered in sqrt
  X_transformed = self.alphas_ * np.sqrt(self.lambdas_)
transformed.shape
(150, 150)

这让我相信,您将KernelPCAn_components 参数设置为大于数据中特征数的数字。

也许你混淆了形状。 拥有一个只有 41 行和 77K+ 特征的数据集似乎很奇怪,而且从这样的数据集进行的任何预测建模在功能上都是无用的。我会再次检查您的数据集的形状,并确保您没有将n_components 的值设置为大于存在的特征数。

【讨论】:

  • 我正在尝试做一些面部识别,并拥有一个包含 15 个主题的 165 张图像的数据库,我有 77K+ 特征,因为我正在扁平化图像并将每个像素用作特征。你能回答为什么 kpca 会通过我的数据中的实例数来限制组件的数量吗?
猜你喜欢
  • 2018-08-10
  • 2014-03-02
  • 2018-09-07
  • 2013-04-21
  • 2018-05-03
  • 2015-08-13
  • 2014-06-28
  • 2014-04-16
  • 2016-01-26
相关资源
最近更新 更多