繁体   English   中英

无法从“sklearn.utils.metaestimators”导入名称“available_if”

[英]Cannot import name 'available_if' from 'sklearn.utils.metaestimators'

导入“from imblearn.over_sampling import SMOTE”时,出现导入错误。 请检查并帮助。 我尝试升级 sklearn,但升级因“OSError”而取消。 首先通过 pip 安装不平衡学习。

!pip install -U imbalanced-learn
  • 使用 jupyter 笔记本

  • Windows 10

  • sklearn 版本 - 0.24.1

  • numpy 版本 - 1.19.5

     -------------------------------------------------------------------------- ImportError Traceback (most recent call last)

    在----> 1 from imblearn.over_sampling import SMOTE

    ~\anaconda3\lib\site-packages\imblearn_ init _.py 中的 35 种导入类型 36 ---> 37 来自。 进口结合 38 从。 从导入合奏 39。 导入例外

    ~\anaconda3\lib\site-packages\imblearn\ combine_init _.py in 3 """ 4 ----> 5 from._smote_enn import SMOTEENN 6 from._smote_tomek import SMOTETomek 7

    ~\anaconda3\lib\site-packages\imblearn\combine_smote_enn.py in 8 from sklearn.utils import check_X_y 9 ---> 10 from..base import BaseSampler 11 from..over_sampling import SMOTE 12 from..over_sampling.base import BaseOverSampler

    ~\anaconda3\lib\site-packages\imblearn\base.py in 13 from sklearn.utils.multiclass import check_classification_targets 14 ---> 15 from.utils import check_sampling_strategy, check_target_type 16 from.utils._validation import ArraysTransformer 17 from.utils ._validation 导入 _deprecate_positional_args

    ~\anaconda3\lib\site-packages\imblearn\utils_ init _.py in 5 from._docstring import Substitution 6 ----> 7 from._validation import check_neighbors_object 8 from._validation import check_target_type 9 from._validation import check_sampling_strategy

    ~\anaconda3\lib\site-packages\imblearn\utils_validation.py in 14 from sklearn.base import clone 15 from sklearn.neighbors._base import KNeighborsMixin ---> 16 from sklearn.neighbors import NearestNeighbors 17 from sklearn.utils import column_or_1d 18 从 sklearn.utils.multiclass 导入 type_of_target

    ~\anaconda3\lib\site-packages\sklearn\neighbors_init _.py in 14 from._nearest_centroid import NearestCentroid 15 from._kde import KernelDensity ---> 16 from._lof import LocalOutlierFactor 17 from._nca import NeighborhoodComponentsAnalysis 18 from._base导入 VALID_METRICS、VALID_METRICS_SPARSE

    ~\anaconda3\lib\site-packages\sklearn\neighbors_lof.py in 10 from..base import OutlierMixin 11 ---> 12 from..utils.metaestimators import available_if 13 from..utils.validation import check_is_fitted 14 from..实用程序导入 check_array

    ImportError:无法从“sklearn.utils.metaestimators”导入名称“available_if”(C:\Users\dks_m\anaconda3\lib\site-packages\sklearn\utils\metaestimators.py)

如果在 jupyter 中,重新启动 kernel。这已修复!

我相信问题在于 scikit-learn 的 python 版本。 我能够通过重新安装 Python3 版本来解决:

pip uninstall scikit-learn -y

pip3 install scikit-learn 

记得在 package 更新后重启终端/笔记本。

这给了我scikit-learn v1.0.2解决了 Python3 中的错误

尝试使用 anaconda prompt 进行安装。 这个对我有用。

这通常发生在 2 个不同版本的软件包不匹配时。 如果您使用的是 jupyter notebook,重新启动您的环境将解决您的问题。

美好的一天。 帮助我的是同时安装 pycaret=='2.3.10 ' 和 scikit-learn='0.23.2' 。 这两个版本是兼容的,一切正常。 我使用 conda 安装了 scikit-learn,因为旧版本无法通过 pip 获得,我使用 pip3 安装了 Pycaret。 我希望这可以帮助所有像我一样努力实现这项工作的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM