인프런 커뮤니티 질문&답변

dongyeobgim2님의 프로필 이미지
dongyeobgim2

작성한 질문수

캐글 Advanced 머신러닝 실전 박치기

application 데이터 세트 기반으로 첫번째 모델 학습 및 성능 평가

코드를 실행했는데 오류가 발생합니다

작성

·

1.4K

0

LightGBM 코드를 실행했는데 fit() got an unexpected keyword argument 'verbose' 라는 오류가 발생합니다. 이유가 무엇인지 알 수 있을까요?

답변 2

0

안녕하세요 저도 같은 문제를 겪었는데요, 저는 임시방편으로 다음 코드를 사용했습니다.

4.0.0 이상의 버전에서 fit의 early_stopping_rounds와 verbose가 deprecated 되어 이전 코드를 사용할 수 없습니다.

제가 참고한 문서1, 문서2 입니다.

 

뒤늦게 선생님께서 달아주신 댓글 봤네요^^;; 현 상황에서는 다운그레이드가 제일 좋은 방법인 것 같습니다.

import lightgbm as lgb
clf.fit(train_x, train_y, eval_set = [(train_x, train_y), (valid_x, valid_y)],
        callbacks = [lgb.early_stopping(stopping_rounds = 50), lgb.log_evaluation(period = 100)],
        eval_metric = 'auc')
권 철민님의 프로필 이미지
권 철민
지식공유자

아, 그러셨군요..

전체 공지가 필요할 것 같습니다. 지금은 제가 여력이 안되고, 주말쯤에 공지 사항을 짧은 영상으로 만들어서 올려야 할 것 같습니다. 감사합니다.

답변 감사합니다! 공지 영상 기다리겠습니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까

말씀하신 코드가 강의 코드인가요?

몇분 몇초의 영상인지와 제가 수행해 볼 수 있도록 해당 오류가 발생하는 부분의 코드를 여기에 올려 주십시요. 에러 메시지 전체도 여기에 올려 주십시요.

감사합니다

dongyeobgim2님의 프로필 이미지
dongyeobgim2
질문자

10분 30초 내용입니다.

코드는

from lightgbm import LGBMClassifier

clf = LGBMClassifier(

n_jobs=-1,

n_estimators=1000,

learning_rate=0.02,

num_leaves=32,

subsample=0.8,

max_depth=12,

silent=-1,

verbose=-1

)

clf.fit(train_x, train_y, eval_set=[(train_x, train_y), (valid_x, valid_y)],

eval_metric= 'auc', verbose= 100, early_stopping_rounds= 50)
올려주신 그대로 사용하였습니다.
에러 메시지는

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_10044\4131868921.py in <module>
     13 
     14 clf.fit(train_x, train_y, eval_set=[(train_x, train_y), (valid_x, valid_y)], 
---> 15 eval_metric= 'auc', verbose= 100, early_stopping_rounds= 50)

TypeError: fit() got an unexpected keyword argument 'verbose'

라고 나옵니다 ! 감사합니다

권 철민님의 프로필 이미지
권 철민
지식공유자

아, lightgbm 이 upgrade가 되면서 API가 많이 바뀌었군요.

lightgbm 4.1 버전 이후 부터는 fit()에 verbose를 입력하면 오류나게 되어 있군요.

아래와 같이 downgrade 하시고,

!pip install lightgbm==3.3.2

 

커널을 재 기동하신 뒤

import lightgbm

print(lightgbm.__version__)

하셔서 3.3.2로 downgrade 되었는지 확인하시고 다시 소스코드를 수행해 보십시요.

 

감사합니다.

dongyeobgim2님의 프로필 이미지
dongyeobgim2

작성한 질문수

질문하기