![](/img/trans.png)
[英]AttributeError: module 'sklearn.metrics._dist_metrics' has no attribute 'DatasetsPair'
[英]Importing SMOTE raise AttributeError: module 'sklearn.metrics._dist_metrics' has no attribute 'DistanceMetric32'
from imblearn.over_sampling import SMOTE
運行將引發以下錯誤。
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
d:\A\OneDrive - UBC\ENGR\518 Machine Learning\Project\codes\model_training_laptop - Copy.ipynb Cell 2 in <cell line: 1>()
----> 1 from imblearn.over_sampling import SMOTE
File e:\Anaconda\lib\site-packages\imblearn\__init__.py:52, in <module>
48 sys.stderr.write("Partial import of imblearn during the build process.\n")
49 # We are not importing the rest of scikit-learn during the build
50 # process, as it may not be compiled yet
51 else:
---> 52 from . import combine
53 from . import ensemble
54 from . import exceptions
File e:\Anaconda\lib\site-packages\imblearn\combine\__init__.py:5, in <module>
1 """The :mod:`imblearn.combine` provides methods which combine
2 over-sampling and under-sampling.
3 """
----> 5 from ._smote_enn import SMOTEENN
6 from ._smote_tomek import SMOTETomek
8 __all__ = ["SMOTEENN", "SMOTETomek"]
File e:\Anaconda\lib\site-packages\imblearn\combine\_smote_enn.py:10, in <module>
7 from sklearn.base import clone
8 from sklearn.utils import check_X_y
---> 10 from ..base import BaseSampler
11 from ..over_sampling import SMOTE
12 from ..over_sampling.base import BaseOverSampler
File e:\Anaconda\lib\site-packages\imblearn\base.py:15, in <module>
12 from sklearn.preprocessing import label_binarize
13 from sklearn.utils.multiclass import check_classification_targets
---> 15 from .utils import check_sampling_strategy, check_target_type
16 from .utils._validation import ArraysTransformer
17 from .utils._validation import _deprecate_positional_args
File e:\Anaconda\lib\site-packages\imblearn\utils\__init__.py:7, in <module>
1 """
2 The :mod:`imblearn.utils` module includes various utilities.
3 """
5 from ._docstring import Substitution
----> 7 from ._validation import check_neighbors_object
8 from ._validation import check_target_type
9 from ._validation import check_sampling_strategy
File e:\Anaconda\lib\site-packages\imblearn\utils\_validation.py:15, in <module>
12 import numpy as np
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
File e:\Anaconda\lib\site-packages\sklearn\neighbors\__init__.py:6, in <module>
1 """
2 The :mod:`sklearn.neighbors` module implements the k-nearest neighbors
3 algorithm.
4 """
----> 6 from ._ball_tree import BallTree
7 from ._kd_tree import KDTree
8 from ._distance_metric import DistanceMetric
File sklearn\neighbors\_ball_tree.pyx:1, in init sklearn.neighbors._ball_tree()
AttributeError: module 'sklearn.metrics._dist_metrics' has no attribute 'DistanceMetric32'
這可能是升級scikit-learn
和 imbalanced- imbalanced-learn
將解決問題的情況。
pip install --upgrade scikit-learn
pip install --upgrade imbalanced-learn
並非所有版本的scikit-learn
和imbalanced-learn
都相互兼容。 版本0.10.0
應該與scikit-learn>=1.0.0
兼容(例如這里的討論)。
改為 scikit-learn==0.24.2 解決了這個問題。 謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.