6회 기출 유형(작업형2) xgboost 관련 질문있습니다!
안녕하세요 다중분리를 할 때 xgboost classification을 적용하는 과정에서 문제가 생겨서 질문드립니다.
처음 데이터셋 그대로 xgboost를 쓰니까
"ValueError: Invalid classes inferred from unique values of y. Expected: [0 1 2 3 4], got ['High' 'Low' 'Medium' 'Very High' 'Very Low']" # 참고로 y는 train 데이터에서 타겟변수만 따로 pop해놓은 변수입니다.
이런 에러가 뜨더라구요, 그래서 for문을 이용해서
for i in range(len(y)):
if y[i] =='Very Low':
y[i] = 0
elif y[i] =='Low':
y[i] = 1
elif y[i] =='Medium':
y[i] = 2
elif y[i] =='High':
y[i] = 3
elif y[i] =='Very High':
y[i] = 4이렇게 바꾸니까, 모델과 pred는 돌아가긴 돌아가는데, f1_score(pred, y_val, average= 'macro')로 점수를 내는 과정에서 새로운 오류가 생겨 점수가 나타나지 않습니다..
ValueError: Classification metrics can't handle a mix of multiclass and unknown target 이라고 떴고, 이전과 비교를 해보니까
랜덤 포레스트 classifier를 돌릴 때 pred는 'Low' 'High' 'Very Low' 'Medium' 'Low' 'Low' 'Low' 'Low' 'High' 'High' ... 이런식으로 되어있는 반면
xgboost는 [1 3 0 2 1 1 1 1 3 3 3 3 0 2 1 3 3 3 3 1 2 3 1 2 0 3 3 1 1 0 0 3 0 1 4 0 4
0 3 1 4 2 2 1 2 3 0 3 1 0 3 1 3 0 0 1 1 2 0 0 4 1 4 2 3 1 2 4 4 4 3 1 0 0
0 0 4 1 0 4 0 0 3 2 0 1 2 4 3 4 0 1 1 0 1 2 3 0 0 1 3 3 0 0 4 0 2 3] 이렇게 콤마로 되어있는걸 알게되었습니다.
그래서 모델을 돌린 뒤
for i in range(len(pred)):
if pred[i] == 0:
pred[i] = 'Very Low'
elif pred[i] == 1 :
pred[i] = 'Low'
elif pred[i] ==2:
pred[i] = 'Medium'
elif pred[i] ==3:
pred[i] = 'High'
elif pred[i] ==4:
pred[i] = 'Very High'다시 원상복구를 시켜서,
['Low', 'High', 'Very Low', 'Medium', 'Low', 'Low', 'Low', 'Low', 'High', 'High', 'High', 'High', 'Very Low', 'Medium',...] 이 형식으로 만들었고,
pred = pd.DataFrame(pred)으로해서.. 음.. 만들었는데 여전히 되지 않습니다..
결론은 저런 과정을 통해.. 해결하고자 했는데 여전히 못하고있고..
xgboost를 사용하려면 어떻게 해야되나요 ?
이런 과정을 거치지 않고서도 xgboost를 돌리려면 어떻게 해야하나요?
입니다.
감사합니다!
답변 1
0
xgboost의 경우 0,1,2,3... 로변경해야 하고 예측 결과를 다시 변환해야 하는 번거로움이 있어요
또한 워닝을 너무 자주 내기도 해서
부스팅 계열을 사용한다면 xgb보다는 lightgbm추천드립니다 (마지막 영상에 있음)
수업노트가 어디에 있나요?
0
15
1
실기시험 제출관련
0
148
2
6.20 작업형 2 과적합
0
156
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
48
2
로지스틱회귀, 회귀
0
47
2
회귀 문제를 풀때 질문입니다.
0
54
1
불균형 처리 후 성능이 더 낮아졌다면,
0
61
2
실기 체험 제2유형 에러 문의
0
61
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
49
2
3번문제 등분산 가정
0
47
2
작업형3 target 형 변환 질문
0
34
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
36
3
원핫인코딩과 레이블 인코딩에서 concat
0
58
2
제2유형 질문입니다.
0
46
2
C()
0
44
2
작업형 2에서 strafity 적용 유무
0
51
2
수강 기간 연장 가능 여부 문의드립니다.
0
60
1
ols
0
43
2
2유형 작성관련 질문(일반 심화)
0
39
2
2유형 작성관련 질문
0
41
2
2유형 object컬럼 개수 다르면
0
48
2
코딩팡질문이요ㅠㅠ
0
45
2
관찰값과 기대값의 개념이 헷갈립니다.
0
25
2
작업형2 ID 컬럼 삭제 질문
0
45
2





