gpt4 book ai didi

python - n_components = 'mle' 和 svd_solver = 'full' 的 sklearn PCA 导致数学域错误

转载 作者:行者123 更新时间:2023-11-28 18:17:20 25 4
gpt4 key购买 nike

我的问题与 math domain error while using PCA 高度相关

我收到以下错误:

  File "$path$\Python\Python36\lib\site-packages\sklearn\decomposition\pca.py", line 88, in _assess_dimension_(1. / spectrum_[j] - 1. / spectrum_[i])) + log(n_samples)
ValueError: math domain error

指的是this line of code :

pa += log((spectrum[i] - spectrum[j]) * (1. / spectrum_[j] - 1. / spectrum_[i])) + log(n_samples)

仔细观察后,我发现问题是由方程的这一部分引起的:

(spectrum[i] - spectrum[j])

如果这些值相等,结果为 0。这会导致乘以 0,从而导致 log(0) 导致此异常的原因。

现在我的问题。发生此错误的事实是否表明我的数据不正确或实现是否应该处理这种情况?如果实现应该处理这个问题,你会推荐什么方式来正确处理这个问题?在链接的问题中已经有 an answer对此,但它看起来不太自信是正确的,也没有任何反馈。

创建了一个 issue在 scikit-learn 的 github 存储库中包含重现错误的步骤。

最佳答案

这是由于 sklearn 中的一个未解决问题。这是确认here

关于python - n_components = 'mle' 和 svd_solver = 'full' 的 sklearn PCA 导致数学域错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47548178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com