inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

분류 실습 2: 신용카드 사기 예측 실습 - 05

분류실습 중 데이터 분리 후 학습에 대해서 질문있습니다.

해결된 질문

221

wkk90

작성한 질문수 5

0

권철민 교수님! 늘 감사드립니다.

늘 업데이트도 해주셔서 정말 감동입니다 :)

 

질문 있습니다!

산탄데르 만족예측관련해서 주신 실습코드에 보면,

XGBoost의 "early_stopping_rounds" 를 사용하기 위해

  1. 학습데이터 셋 분리

  2. 분리된 데이터에서 조기종료 검증셋 분리

  3. 모델학습

이렇게 구성되어있습니다.

 

## 1. 학습셋 분리
X_train, X_test, y_train, y_test = train_test_split(X_features, y_labels,test_size=0.2, random_state=0,stratify=y_labels)

## 2. X_train, y_train을 다시 학습과 검증 데이터 세트로 분리. 
X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train, test_size=0.3, random_state=0, stratify=y_train)

## 3. 모델 훈련
from xgboost import XGBClassifier
from sklearn.metrics import roc_auc_score

# n_estimators는 500으로, learning_rate 0.05, random state는 예제 수행 시마다 동일 예측 결과를 위해 설정. 
xgb_clf = XGBClassifier(n_estimators=500, learning_rate=0.05, random_state=156)

# 성능 평가 지표를 auc로, 조기 중단 파라미터는 100으로 설정하고 학습 수행. 
xgb_clf.fit(X_tr, y_tr, early_stopping_rounds=100, eval_metric='auc', eval_set=[(X_tr, y_tr), (X_val, y_val)])

여기서 질문이 있습니다.

최종적으로 모델을 만들때는 X_train, y_train 셋으로 사용해야 더 많은 데이터로 학습을 하기에 성능이 좋지 않나요? 아무래도,
X_tr 보단 X_train셋의 데이터가 많으므로 좋을거 같아서요..

 

물론, 조기종료(early_stopping_rounds)를 사용하지 못하겠지만... 아니면 일단 조기종료를 통해 하이퍼파라미터를 찾고, 그 파라미터로 맨 마지막에 X_train을 사용하라는 의미로 생각해도 될까요??

 

교수님께 늘 감사드리며, 24년도 늘 건강하고 행복한 일들로만 가득하길 기원합니다^^. 좋은 하루 되세요!

python 머신러닝 통계

답변 1

1

권 철민

안녕하십니까,

아이고, 이렇게까지 칭찬을 해주셔서 몸들바를 모르겠습니다. 감사합니다. ^^'

 

최종적으로 모델을 만들때는 X_train, y_train 셋으로 사용해야 더 많은 데이터로 학습을 하기에 성능이 좋지 않나요?

=> 그럴수도 있고, 그렇지 않을 수도 있습니다. XGBoost, LightGBM과 같은 라이브러리는 학습 데이터가 아닌 검증 데이터로 오버피팅을 좀 더 개선해 나갈 수 있습니다. 때문에 검증 데이터를 기반으로 학습 수행 시 지속적으로 iteration을 수행하는 도중에 학습 데이터의 Loss는 계속 줄지만, 검증 데이터의 loss는 더 이상 줄어들지 않고, 오히려 늘어난다면, 학습을 중단하여 오버 피팅에 빠지지 않도록 개선할 수 있는 장점이 있습니다.

일반적으로 데이터가 적다면 X_train, y_train 셋으로 사용해서 더 많은 데이터로 학습을 하는것이 성능이 더 좋을 수 있습니다. 반면에 데이터가 충분이 있다면, 적절한 정도의 검증 데이터를 기반으로 학습 도중에 성능을 검증해 나가면서 학습을 해나가는 것이 성능이 더 좋을 수 있습니다.

 

감사합니다.

0

wkk90

빠르고 소중한 답변 정말 감사합니다^^ 좋은하루 되세요!!

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

4

1

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

74

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

79

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

108

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

190

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2