首页 > 解决方案 > 从 sklearn.metrics.pairwise 导入错误 _euclidean_distances

问题描述

我正在使用 Orange 3.30.1 尝试使用 Python 脚本小部件将 SMOTE 添加到我的数据分类问题中(Orange 团队没有实施它,而是建议采用这种方式:https ://github.com/biolab/orange3 /拉/3269)。

为了能够继续前进,我使用带有 pip 的 Orange 命令提示符安装了 imblearn 库,因为 Orange 不附带它:

(C:\Users\name\AppData\Local\Programs\Orange) C:\Users\name\AppData\Local\Programs\Orange>pip install imblearn
Collecting imblearn
  Using cached imblearn-0.0-py2.py3-none-any.whl (1.9 kB)
Collecting imbalanced-learn
  Using cached imbalanced_learn-0.8.1-py3-none-any.whl (189 kB)
Requirement already satisfied: numpy>=1.13.3 in c:\users\name\appdata\local\programs\orange\lib\site-packages (from imbalanced-learn->imblearn) (1.21.2)
Requirement already satisfied: scikit-learn>=0.24 in c:\users\name\appdata\local\programs\orange\lib\site-packages (from imbalanced-learn->imblearn) (1.0)
Requirement already satisfied: scipy>=0.19.1 in c:\users\name\appdata\local\programs\orange\lib\site-packages (from imbalanced-learn->imblearn) (1.5.3)
Requirement already satisfied: joblib>=0.11 in c:\users\name\appdata\local\programs\orange\lib\site-packages (from imbalanced-learn->imblearn) (1.0.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\users\name\appdata\local\programs\orange\lib\site-packages (from scikit-learn>=0.24->imbalanced-learn->imblearn) (2.2.0)
Installing collected packages: imbalanced-learn, imblearn
Successfully installed imbalanced-learn-0.8.1 imblearn-0.0

但是这个 Python 代码的导入行粘贴到小部件中:

from imblearn.over_sampling import SMOTE

导致导入错误:

ImportError: cannot import name '_euclidean_distances' from 'sklearn.metrics.pairwise' (C:\Users\name\AppData\Local\Programs\Orange\lib\site-packages\sklearn\metrics\pairwise.py)
>>> 

我检查了文件sklearn.metrics.pairwise和相应的功能_euclidean_distances是否真的存在。直接手动导入相同的函数会导致相同的错误。但是在同一文件中手动报告相关函数euclidean_distances不会引发导入错误。

有遇到过同样问题的人吗?

标签: scikit-learnorangesmote

解决方案


我也遇到了同样的错误,我通过使用以下方法更新我的所有库得到了解决: conda update conda


推荐阅读