Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 应用主成分分析法在约化矩阵中给出nan值;如何应用成功的降维_Python_Pca - Fatal编程技术网

Python 应用主成分分析法在约化矩阵中给出nan值;如何应用成功的降维

Python 应用主成分分析法在约化矩阵中给出nan值;如何应用成功的降维,python,pca,Python,Pca,我正在使用Python。我将内核PCA应用于“rbf”内核,并使用sklearn提供的Python内核PCA包尝试了其他选项 这样做时,我得到了警告 "RuntimeWarning: invalid value encountered in sqrt return np.dot(K, self.alphas_ / np.sqrt(self.lambdas_))" lambda是矩阵的特征值。我认为错误在于特征值是NaN PCA仍在执行。上述只是一个警告,但生成的简化矩阵在某些列中具有NaN值,

我正在使用Python。我将内核PCA应用于“rbf”内核,并使用sklearn提供的Python内核PCA包尝试了其他选项

这样做时,我得到了警告

"RuntimeWarning: invalid value encountered in sqrt
return np.dot(K, self.alphas_ / np.sqrt(self.lambdas_))"
lambda是矩阵的特征值。我认为错误在于特征值是NaN

PCA仍在执行。上述只是一个警告,但生成的简化矩阵在某些列中具有NaN值,这似乎表明某些错误不仅是警告,而且实际上是错误的

基本上,我如何继续/解释这个结果

忽略那些NaN列并使用简化矩阵有意义吗?我之所以不这么认为,是因为从约化矩阵到全矩阵的逆映射会发生什么?但话说回来,sklearn本身并没有给出错误,所以可能还有希望

我不是PCA方面的专家。原始/完整矩阵约有350列和200行。在PCA均值为零和单位方差之前标准化矩阵没有帮助。有人知道发生了什么/如何分析出了什么问题吗

如果可能的话,我愿意接受其他降维技术


我现在的想法是减少矩阵,直到它表现良好,然后迭代地构建它直到崩溃。但是,最后,我更愿意按原样使用整个矩阵,或者至少能够说矩阵太糟糕了,我永远无法进行PCA之类的操作。

np.sqrt在参数为负时返回nan。所以你可能会得到负的特征值。根据这里的答案:,具有显著量级的负特征值表示严重的模型错误。更新:我发现问题出在矩阵上。我有许多相同值的列,最后删除了重复的列,从而稳定了整个过程。