【问题标题】:Cannot import name 'available_if' from 'sklearn.utils.metaestimators'无法从“sklearn.utils.metaestimators”导入名称“available_if”
【发布时间】:2021-12-04 16:21:39
【问题描述】:

导入“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 从 ._smote_enn 导入 SMOTEENN 6 从 ._smote_tomek 导入 SMOTETomek 7

    ~\anaconda3\lib\site-packages\imblearn\combine_smote_enn.py 在 8 从 sklearn.utils 导入 check_X_y 9 ---> 10 从 ..base 导入 BaseSampler 11 从 ..over_sampling 导入 SMOTE 12 从 ..over_sampling.base 导入 BaseOverSampler

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

    ~\anaconda3\lib\site-packages\imblearn\utils_init_.py in 5 from ._docstring 导入替换 6 ----> 7 from ._validation import check_neighbors_object 8 来自 ._validation 导入 check_target_type 9 from ._validation import check_sampling_strategy

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

    ~\anaconda3\lib\site-packages\sklearn\neighbors_init_.py in 14 从 ._nearest_centroid 导入 NearestCentroid 15 从 ._kde 导入内核密度 ---> 16 从 ._lof 导入 LocalOutlierFactor 17 从 ._nca 导入 NeighborhoodComponentsAnalysis 18 从 ._base 导入 VALID_METRICS, VALID_METRICS_SPARSE

    ~\anaconda3\lib\site-packages\sklearn\neighbors_lof.py 在 10 从 ..base 导入 OutlierMixin 11 ---> 12 来自 ..utils.metaestimators 导入 available_if 13 从 ..utils.validation 导入 check_is_fitted 14 from ..utils import check_array

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

【问题讨论】:

    标签: python jupyter-notebook imbalanced-data imblearn smote


    【解决方案1】:

    尝试使用 anaconda 提示符进行安装。 它对我有用。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案2】:

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

    pip uninstall scikit-learn -y
    
    pip3 install scikit-learn 
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 2020-09-22
      • 2021-05-30
      • 2021-11-07
      • 2021-03-07
      • 2021-04-27
      • 2021-05-27
      相关资源
      最近更新 更多