我正在尝试执行Udacity mini项目,并且已经安装了最新版本的SKLearn库(20.2)。

当我跑步时:

from sklearn.decomposition import RandomizedPCA


我得到错误:

ImportError: cannot import name 'RandomizedPCA' from 'sklearn.decomposition' (/Users/kintesh/Documents/udacity_ml/python3/venv/lib/python3.7/site-packages/sklearn/decomposition/__init__.py)

我实际上甚至使用以下方式升级了版本:

pip3 install -U scikit-learn

它已从0.20.0升级到0.20.2,并且也已卸载并重新安装...因此我不确定为什么它不能初始化sklearn.decomposition

这里有什么解决方案可能不会导致从我的机器上完全卸载python3吗?理想情况下希望避免这种情况。

任何帮助将不胜感激!

编辑:

我正在做一些挖掘并尝试解决此问题,似乎SKLearn GitHub上__init__.py库中的decomposition文件未引用RandomizedPCA ...它已被删除还是其他?

Link to the GitHub page

最佳答案

事实证明,RandomizePCA()在较旧的SKLearn版本中已贬值,并且只是PCA()中的一个参数。

您可以通过将import语句更改为以下内容来解决此问题:

from sklearn.decomposition import PCA as RandomizedPCA


...然后您的分类器如下所示:

pca = RandomizedPCA(n_components=n_components, svd_solver='randomized', whiten=True).fit(X_train)


但是,如果由于在Eigenfaces.py上进行Udacity机器学习课程而在这里,则会注意到PIL库也已弃用。

不幸的是,我没有针对该解决方案的解决方案,但是here's the GitHub issue pagehere's是一个善良的人,当这些存储库工作时,他们使用Jupyter Notebook解决了他们的微型项目。

我希望这会有所帮助,并为下一个人提供足够的信息以帮助他们学习机器学习。如果有时间,我可能会尝试将eigenfaces.py编码为SKLearn 0.20.2,但是现在我将继续本课程的其余部分。

关于python-3.x - SKLearn 0.20.2-RandomizedPCA导入错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54494785/

10-13 02:44