imblearn 에러 - TypeError: __init__() got an unexpected keyword argument 'ratio'

안녕하세요 jay입니다.
오늘은 SMOTE 라이브러리에서 발생된 에러인
"TypeError: __init__() got an unexpected keyword argument 'ratio'"에 대해
알아보도록 하겠습니다.

from imblearn.over_sampling import SMOTE
from imblearn import *

sm = SMOTE(ratio='auto', kind='regular')

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-41-48c7c1338428> in <module>
      2 from imblearn import *
      3 
----> 4 sm = SMOTE(ratio='auto', kind='regular')

TypeError: __init__() got an unexpected keyword argument 'ratio'
 위와 같이 4번째 라인에서 ratio가 unexpected keyword argument라는 에러 메세지가 발생했습니다. ratio를 지우고 kind만 돌렸는데도 같은 에러가 발생했습니다. 그래서 documentation을 찾아보니 아래와 같이 나왔습니다.

0.6버전부터는 이 parameter는 사라질 것이라 했고 현재 imblearn(20.04.01 기준)은 0.6버전이라 ratio라는 keyword가 없어서 위와 같은 에러 메세지가 발생했습니다. 따라서 위에서 documentation에서 나온대로 sampling_strategy를 사용하면 됩니다. 자세한건 아래 documentation 링크를 보고 참고를 해주시면 되겠습니다.
링크 : https://imbalanced-learn.readthedocs.io/en/stable/generated/imblearn.over_sampling.SMOTE.html

댓글