【问题标题】:SKLearn 0.20.2 - Import error with RandomizedPCA?SKLearn 0.20.2 - RandomizedPCA 的导入错误?
【发布时间】:2019-06-26 22:23:31
【问题描述】:

我正在尝试做 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 上的 decomposition 库中的 __init__.py 文件没有引用 RandomizedPCA... 它是否已被删除或什么?

Link to the GitHub page

【问题讨论】:

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


    【解决方案1】:

    除了@Aaraeus 所说的,PIL library 已被分叉为Pillow。 您可以使用

    修复PIL导入错误
    pip3 install pillow
    

    【讨论】:

      【解决方案2】:

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

      您可以通过将导入语句更改为:

      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,但现在我将继续学习本课程的其余部分。

      【讨论】:

        猜你喜欢
        • 2017-05-16
        • 2017-05-04
        • 2016-10-03
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-27
        相关资源
        最近更新 更多