[XGBoost] use `early_stopping_rounds` in constructor or`set_params` instead. 해결방법

2023. 7. 25. 23:15Programming

728x90

1. 현상

UserWarning: `early_stopping_rounds` in `fit` method is deprecated for better compatibility with scikit-learn, use `early_stopping_rounds` in constructor or`set_params` instead.

에러가 화면을 가득 채운다..

 

728x90

 

2. 해결방법

from xgboost import XGBRegressor

# Assuming you have your data and labels: X_train, y_train, X_valid, y_valid

model = XGBRegressor(
	early_stopping_rounds=10, 
	eval_set=[(X_valid, y_valid)]
)
model.fit(X_train, y_train)

위의 코드를 아래와 같이 수정한다.

즉, model의 instance를 생성한 이후에 set_params을 사용해 parameters를 세팅해주면 된다.
from xgboost import XGBRegressor

# Assuming you have your data and labels: X_train, y_train, X_valid, y_valid

model = XGBRegressor()
model.set_params(
	early_stopping_rounds=10, 
	eval_set=[(X_valid, y_valid)]
)
model.fit(X_train, y_train)

 

3. 결과

에러 메시지가 발생하지 않고, 코드를 사용할 수 있게 된다.

반응형