【问题标题】:ImportError: cannot import name choice when importing sklearn.mixtureImportError:导入 sklearn.mixture 时无法导入名称选择
【发布时间】:2014-09-19 23:54:45
【问题描述】:

我正在使用 scikit learn 0.15.0。当我尝试导入 sklearn.mixture 我得到 ImportError: 无法导入名称选择

有什么想法吗?

================================================ ======================

In [1]: **from sklearn import mixture**

ImportError                               Traceback (most recent call last)
<ipython-input-1-05bc76cab98d> in <module>()
----> 1 from sklearn import mixture

/home/f/anaconda/lib/python2.7/site-packages/sklearn/mixture/__init__.py in <module>()
      3 """
      4
----> 5 from .gmm import sample_gaussian, log_multivariate_normal_density
      6 from .gmm import GMM, distribute_covar_matrix_to_match_covariance_type
      7 from .gmm import _validate_covars

/home/f/anaconda/lib/python2.7/site-packages/sklearn/mixture/gmm.py in <module>()
     16 from ..utils import check_random_state, deprecated
     17 from ..utils.extmath import logsumexp, pinvh
---> 18 from .. import cluster
     19
     20 from sklearn.externals.six.moves import zip

/home/f/anaconda/lib/python2.7/site-packages/sklearn/cluster/__init__.py in <module>()
      4 """
      5
----> 6 from .spectral import spectral_clustering, SpectralClustering
      7 from .mean_shift_ import mean_shift, MeanShift, estimate_bandwidth, \
      8     get_bin_seeds

/home/f/anaconda/lib/python2.7/site-packages/sklearn/cluster/spectral.py in <module>()
     16 from ..neighbors import kneighbors_graph
     17 from ..manifold import spectral_embedding
---> 18 from .k_means_ import k_means
     19
     20

/home/f/anaconda/lib/python2.7/site-packages/sklearn/cluster/k_means_.py in <module>()
     28 from ..utils import as_float_array
     29 from ..utils import gen_batches
---> 30 from ..utils.random import choice
     31 from ..externals.joblib import Parallel
     32 from ..externals.joblib import delayed

ImportError: cannot import name choice

【问题讨论】:

  • 信息不足。你是怎么安装的,是升级了吗,你有没有尝试卸载并重新安装?
  • 我正在使用本地安装在我的主目录下的 anaconda 包,因为我必须解决没有管理员权限的问题。该机器正在运行 Red Hat 4.4.5-6。安装 anaconda 后,我将 scikit-learn 升级到 0.15。
  • 你试过卸载+重新安装吗?
  • random.choice 在 0.15 版本之前不存在,因此可能是升级问题。

标签: python scikit-learn python-import


【解决方案1】:

当我尝试import KMeans 时遇到了同样的错误:from sklearn.cluster import KMeans

Error &gt; ImportError: cannot import name choice

我在这里找到了答案:https://github.com/scikit-learn/scikit-learn/issues/3461

由于几天前我已升级到 Scikit 0.15 版,旧版本 random.so 出现在 /usr/local/lib/python2.7/dist-packages/sklearn/utils

我手动删除了它,现在我不再收到错误了。

希望这会有所帮助。

【讨论】:

  • 这确实是问题感谢skv。由于我使用的是安装在我的主目录中的 anaconda,我的位置是:~/anaconda/lib/python2.7/site-packages/sklearn/utils/random.so
【解决方案2】:

如前所述,它可能与您可能使用 pip install -U packagename 更新的新包中的旧文件(在 python 中实现而不是库?)有关(在我的情况下是 pip install -U scikit-learn )在手动删除内容之前,首先尝试卸载软件包并重新安装它可能是值得的......(在我的情况下工作) 卸载 (在我的例子中,在 Anaconda 命令提示符下运行它):

   pip uninstall scikit-learn

然后:

   pip install -U numpy scipy scikit-learn

(添加依赖以防万一) 然后确定

   pip install scikit-learn

应该说已经安装了

【讨论】:

    【解决方案3】:
    from sklearn.mixture import GaussianMixture
    

    使用它可以更具体地使用 .gmm,

    from sklearn.cluster import KMeans
    

    为:

         16 from ..neighbors import kneighbors_graph
         17 from ..manifold import spectral_embedding
    ---> 18 from .k_means_ import k_means
    

    【讨论】:

      【解决方案4】:

      新的实现是

      from sklearn import mixture
      model = mixture.GaussianMixture(n_components=3, covariance_type='full')
      

      只需替换前两行

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 2016-01-16
      • 2014-10-10
      • 2014-09-20
      相关资源
      最近更新 更多