- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
申请后KernelPCA
到我的数据并将其传递给分类器 ( SVC
) 我收到以下错误:
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
执行 KernelPCA
时出现此警告:
RuntimeWarning: invalid value encountered in sqrt X_transformed = self.alphas_ * np.sqrt(self.lambdas_)
查看转换后的数据,我发现了几个 nan
值。
kernel
没有什么区别我在用着。我试过cosine
, rbf
和linear
.
但有趣的是:
我的原始数据仅包含 0 到 1 之间的值(没有 inf
或 nan
),它使用 MinMaxScaler
进行缩放
应用标准PCA
有效,我认为与 KernelPCA
相同与 linear
kernel
.
更多事实:
知道如何克服这个问题以及可能的原因是什么?
最佳答案
产生 NaN
是因为输入矩阵的特征值 (self.lambdas_) 为负,这会引发 ValueError,因为平方根不与负值运算。
可以通过设置 KernelPCA(remove_zero_eig=True, ...)
来解决此问题,但此类操作不会保留数据的原始维度。使用此参数是最后的手段,因为模型的结果可能会出现偏差。
实际上,有人指出负特征值表明模型指定错误,这显然是不好的。在不破坏带有 remove_zero_eig 参数的数据维数的情况下回避这一事实的可能解决方案可能是减少原始特征的数量,这些特征具有很大的相关性。尝试构建相关矩阵并查看这些值是什么。然后,尝试省略冗余特征并再次拟合KernelPCA()
。
关于python - KernelPCA 产生 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44716368/
申请后KernelPCA到我的数据并将其传递给分类器 ( SVC ) 我收到以下错误: ValueError: Input contains NaN, infinity or a value too
我正在尝试使用 KernelPCA 将数据集的维数降低为二维(既用于可视化目的,也用于进一步的数据分析)。 我尝试在各种 Gamma 值下使用 RBF 内核计算 KernelPCA,但结果不稳定: (
我是一名优秀的程序员,十分优秀!