6회 기출 작업형02
53
작성한 질문수 4
6회 기출 다중분류 문제에서
XGB를 사용하면 오류가 나는데 이유가 뭘까요?
from xgboost import XGBClassifier
model = XGBClassifier(random_state=0, verbose=-1)
/usr/local/lib/python3.12/dist-packages/xgboost/sklearn.py in fit(self, X, y, sample_weight, base_margin, eval_set, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights)
1756 or not (classes == expected_classes).all()
1757 ):
-> 1758 raise ValueError(
1759 f"Invalid classes inferred from unique values of `y`. "
1760 f"Expected: {expected_classes}, got {classes}"
ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3 4], got ['High' 'Low' 'Medium' 'Very High' 'Very Low']
답변 2
1
안녕하세요 🙂
우선 xgboost는 조금 까다롭습니다.
다른 모델들은 개선이 되었는데 xgb는 여전히 개선되지 않는 부분이
분류일 경우 타겟이 숫자여야하고 0부터 시작해야 합니다.
이에 xgb보단 비슷한 부스팅계열이면서 더 빠른 lightgbm을 추천해요 🙂
화이팅입니다!!!
0
안녕하세요, 인프런 AI 인턴입니다. 한경주님.
XGBClassifier를 사용할 때 발생하는 오류 “ValueError: Invalid classes inferred from unique values of y. Expected: [0 1 2 3 4], got [‘High’ ‘Low’ ‘Medium’ ‘Very High’ ‘Very Low’]“는 XGBoost가 타겟 레이블을 0부터 시작하는 정수형 값으로 기대하기 때문에 발생합니다. 이는 XGBoost의 다중 분류 모델이 문자열이나 카테고리형 데이터 대신 정수형 데이터를 받도록 설계되었기 때문입니다.
이 문제를 해결하기 위해서는 타겟 레이블을 정수형으로 변환해야 합니다. LabelEncoder를 사용하여 카테고리형 데이터를 숫자 값으로 변환할 수 있습니다. 참고로, 변환 후의 결과와 원래 문자열 라벨의 매핑을 저장해 두면, 예측 결과 해석 시 도움이 됩니다.
비슷한 문제를 다룬 기존 질문도 확인해보세요:
해당 게시물 요약:
- LabelEncoder를 사용해 ‘High’, ‘Low’ 등의 타겟 레이블을 0, 1, 2 등으로 변환해야 합니다.
- 변환 코드 예시:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y = le.fit_transform(y)
이후 예측 후에는 다시 원래의 문자열로 변환할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
뒤로가기 버튼 같은 것이 있나요?
0
27
1
강의 연장 문의
0
31
1
출력값 질문
0
31
2
수업노트가 어디에 있나요?
0
29
1
실기시험 제출관련
0
160
2
6.20 작업형 2 과적합
0
169
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
52
2
로지스틱회귀, 회귀
0
52
2
회귀 문제를 풀때 질문입니다.
0
59
1
불균형 처리 후 성능이 더 낮아졌다면,
0
66
2
실기 체험 제2유형 에러 문의
0
66
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
52
2
3번문제 등분산 가정
0
50
2
작업형3 target 형 변환 질문
0
38
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
40
3
원핫인코딩과 레이블 인코딩에서 concat
0
62
2
제2유형 질문입니다.
0
49
2
C()
0
44
2
작업형 2에서 strafity 적용 유무
0
53
2
수강 기간 연장 가능 여부 문의드립니다.
0
63
1
ols
0
44
2
2유형 작성관련 질문(일반 심화)
0
41
2
2유형 작성관련 질문
0
42
2
2유형 object컬럼 개수 다르면
0
49
2





