SW개발

에러 해결 방법 : ImportError: cannot import name 'DistanceMetric' from 'sklearn.metrics' (/Applications/anaconda3/lib/python3.8/site-packages/sklearn/metrics/__init__.py)

The Yellow Lion King 2022. 11. 13. 13:56
반응형

 

imbalanced Dataset을 처리하기 위해 imblearn 라이브러리를 이용하려할때 발생했던 에러 입니다.

 

환경 :

anaconda3(python 3.8.8), jupyter notebook

 

Code 내용 :

!pip install imblearn
from imblearn.under_sampling import RandomUnderSampler
from imblearn.over_sampling import RandomOverSampler, SMOTE

 

에러 현상:

ImportError: cannot import name 'DistanceMetric' from 'sklearn.metrics' (/Applications/anaconda3/lib/python3.8/site-packages/sklearn/metrics/__init__.py)

imbalance 데이터 셋을 업/다운 샘플링을 통해 보정하고자 imblearn 패키지를 이용하려고 했습니다. 그런데 에러가 나더군요 좀 찾아보니 imblanced-learn 패키지를 이용하라는 글이 있더군요  그래서 이것도 설치하고 사용하려 하다보니 위와 같은 에러가 났습니다.

 

추정 원인:

아마도 원인은 package version 충돌 및 outdate 된 download 주소인 것 같습니다. 

 

해결 방법:

pip를 업그래이드하고 scikit-learn 과 imbalanced-learn 의 버전을 맞추어 줍니다.

!pip install --upgrade pip                 # pip 업그래이드
!pip install -U imbalanced-learn      # 혹시 이전에 설치된 버전이 있다면 제거
!pip install imbalanced-learn==0.8.1  # 버전 준수
!pip install scikit-learn==0.24.2          # 버전 준수

 

 

반응형