我正在尝试执行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 page和here's是一个善良的人,当这些存储库工作时,他们使用Jupyter Notebook解决了他们的微型项目。
我希望这会有所帮助,并为下一个人提供足够的信息以帮助他们学习机器学习。如果有时间,我可能会尝试将
eigenfaces.py
编码为SKLearn 0.20.2
,但是现在我将继续本课程的其余部分。关于python-3.x - SKLearn 0.20.2-RandomizedPCA导入错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54494785/