해결된 질문
작성
·
107
0
안녕하세요 선생님!
xgboost를 사용해 예측을 진행하려고 하니,
ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3], got [1 2 3 4]
위와 같은 에러코드가 나와, chat gpt에 물어보니,
XGBoost
가 클래스 레이블을 0부터 시작하는 정수 값으로 기대하기 때문입니다. 즉, XGBoost
는 클래스 레이블이 [0, 1, 2, 3]
과 같은 형식을 갖추기를 기대하는데, 현재 데이터는 [1, 2, 3, 4]
로 되어 있습니다.
이 문제를 해결하려면 클래스 레이블을 0부터 시작하도록 변경해야 합니다.
라고 답변을 주었는데, 코드를 수정해준 것을 보니, y 변수에 train['Segmentation']을 할당하여 LabelEncoding 을 진행하여 0부터 시작하는 데이터로 변환시켜주는 코드를 줬는데,
이 코드를 사용하여 예측하고 제출 csv 파일까지 만들어 확인해보니, Segmentation 예측을 1,2,3,4 로 한 것이 아닌 0,1,2,3 으로 예측하였는데...
xgboost를 사용하기 위해서는 어느 부분을 수정하여야 할까요?
감사합니다.
답변 1
0
xgboost를 사용하기 위해서는 2번 수정을해야해서 추천을 하지 않습니다.
예측전 수정, 예측 후 수정
이는 시험에서 실수할 가능성이 높아
부스팅계열 모델을 사용하신다면 lightgbm을 추천해요!
앗 그렇군요! 감사합니다. lightgbm으로 연습해보겠습니다!