我试图做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
。 。是否已将其删除?
答案 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 page和here's一个善良的灵魂,使用Jupyter笔记本解决他们的小项目回来时,这些仓库的工作。< / p>
我希望这可以帮助,并提供足够的信息,旁边的人进入机器学习。如果有时间,我可能会尝试将eigenfaces.py
编码为SKLearn 0.20.2
,但是现在我将继续本课程的其余部分。
答案 1 :(得分:0)
除了@Aaraeus所说的以外,PIL library
还分叉到Pillow
。
您可以使用{p>修复PIL
导入错误
pip3 install pillow