SKLearn 0.20.2-RandomizedPCA导入错误?

时间:2019-02-02 16:01:14

标签: python-3.x scikit-learn pip install decomposition

我试图做Udacity小项目,我已经安装了最新版本的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

2 个答案:

答案 0 :(得分:11)

事实证明,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笔记本解决他们的小项目回来时,这些仓库的工作。< / p>

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

答案 1 :(得分:0)

除了@Aaraeus所说的以外,PIL library还分叉到Pillow。 您可以使用{p>修复PIL导入错误

pip3 install pillow