eval_set 관련 헷갈리는 부분 질문드립니다.
656
작성한 질문수 63
xgb_clf.fit 에서 X_train과 y_train을 인자로 넣어주는데 eval_set=[(X_train, y-train)]을 넣어주는 이유가 헷갈립니다.
교차검증처럼 학습데이터와 검정데이터로 나누어주는 것인가요?
답변 1
0
학습과 검증으로 나누는건 맞는데, 교차 검증하고는 조금 성격이 다릅니다.
eval_set = [(X_train, y_train), (X_test, y_test)] 를 적용하는 이유는 학습 데이터로 X_train, y_train, 검증 데이터로 X_test, y_test를 xgboost가 iteration을 수행할 때마다 사용하기 위함입니다.
xgboost는 num_iterations 수만큼 반복적으로 학습을 수행하는데 이때마다 학습데이터로 학습된 모델을 검증 데이터로 성능 검증을 합니다. 즉 iteration수행 시마다 얼마나 성능이 향상되었는지 검증 데이터로 검증을 합니다.
만약 iteration을 100으로 했는데, 검증 데이터로 성능 검증 시 더 이상 성능이 향상되지 않으면 early stopping으로 학습을 종료합니다. 또한 검증 데이터로 성능이 얼마나 향상되는지를 확인하면서 learning rate등을 어떻게 조정해야 하는지 길잡이 역할을 해줄 수 있습니다.
eval_set에 학습 데이터가 아닌 검증 데이터를 사용하는 이유는 머신러닝은 무조건 학습 데이터의 loss가 최소가 되는 방향으로 학습하기 때문에 오버피팅이 되기 쉽습니다. 따라서 iteration 시 마다의 성능 검증은 검증 데이터를 이용합니다.
0
fit 파라미터로 학습데이터인 X_train과 y_train을 넣어주는데 eval_set 에도 검증데이터로 쓰일 데이터(예시에서 X_test, y_test) 말고도 학습데이터를 함께 넣어주는 것인가요?
교재 242p XGBoost에 대한 설명 및 코드에서는 eval_set 에 (X_test, y_test) 하나만 넣어주는데 이 부분때문에 헷갈리는 것 같습니다.
1
[(x_train, y_train), (x_test, y_test)] 이렇게 넣으면 (x_test, y_test)를 검증 데이터 세트를 지정하고 (x_test, y_test)하나만 넣으면 (x_test, y_test)를 검증 데이터로 지정합니다.
안녕하세요 열심히 수강중인 학생입니다
0
58
2
정수 인덱싱
0
65
2
넘파이 오류
0
83
2
11강 numpy의 axis 축 질문 드립니다.
0
84
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
76
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
68
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
73
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
62
2
5강 강의 오류가 있어요.
0
81
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
71
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
67
3
파이썬 다운그레이 후 사이킷런 재설치
0
115
2
좋은 강의 감사합니다.
0
70
2
scoring 함수 음수값
0
66
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
98
2
분류 평가 정확도 예측
0
75
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
96
1
카카오톡 채널 있나요
0
104
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
187
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
169
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
145
2
실루엣 스코어..
0
82
2
float64 null 값 처리 방법
0
99
2





