학교수업/데이터 사이언스

Evaluation Protocols

해영이의 성장일기 2026. 4. 13. 01:04

아직 나는 주말인데 교수님이 영상을 푸심 ㅠㅠ 어쩔 수 없이 공부를 해야겠죠!

 

 

이방법 문제는 한 번만 나누면 운이 너무 크게 작용할 수 있다.

  • 우연히 쉬운 데이터만 test set에 들어가면 accuracy 높게 나올 수 있음
  • 반대로 어려운 데이터만 모이면 낮게 나올 수 있음 

그래서 holdout을 k번 반복하고 평균 정확도를 쓰자!!

 

 

 

 

이걸 k번 반복해서 모든 subset이 한 번씩 test가 되게 한다. 그리고 마지막에 accuracy 평균을 낸다. 이 방법이 왜 좋냐?

데이터를 한 번만 나눌 때보다 평가가 더 안정적이라서.. 왜냐하면 모든 데이터가

  • 어떤 때는 training에 들어가고
  • 어떤 때는 test에 들어가니까  bias 이 줄어든다. 

 

 

작은 데이터셋에서 쓴다. 왜냐면 => 데이터가 많으면 n번 반복해야 해서 계산량이 너무 커져서.

 

각 fold가 원래 데이터의 클래스 분포를 비슷하게 유지하게 한다. 특히 클래스 불균형이 있으면 그냥 랜덤 분할했을 때 어떤 fold는 positive가 너무 적을 수도 있고! 그러면 평가가 이상해진다. 그래서 stratified 방식이 더 공정하고 안정적인 평가를 주는 경우가 많다. 

 

 

Ensemble

 

 

모델 하나만 쓰지 말고 여러 모델을 합쳐서 정확도를 높이자!! 한 사람 의견만 듣는 것보다 여러 사람 의견을 종합한다. 

단순 평균/다수결 각 분류기의 성능을 고려해서 가중치 결합

 

 

 

 

step1: training set 여러 개 만들기  (같은 데이터가 여러 번 들어갈 수 있고 어떤 데이터는 아예 안 들어갈 수도 있다

step2: 각각 모델 학습 

step3: 예측할 때 새 데이터 X가 들어오면 각 모델 Mi 가 자기 예측을 하나씩 낸다

step4: 그 예측들을 모아서 가장 많은 표를 받은 클래스를 최종 결과로 투표를 한다

 

 

왜 좋냐면 => 각 모델이 조금씩 다른 데이터를 보고 배워서 오차가 분산된다. 그래서 모델 하나만 쓸 때보다 더 안정적일 수 있다

 

 

 

핵심 차이는 틀린 데이터에 점점 더 집중한다!!

  1. 초기 가중치 
  2. 샘플링과 모델 학습
  3. 틀린 애들에 더 주목 - 가중치를 높여서
  4. 최종 결합 => 이때 각 classifier의 vote weight는 그 classifier의 accuracy에 따라 준다.

 

Bagging

  • 여러 데이터셋을 뽑아서 병렬적으로 여러 모델
  • 단순 다수결 느낌
  • 각 모델이 비교적 독립적

Boosting

  • 이전 모델이 틀린 것에 집중
  • 순차적으로 다음 모델 개선
  • 잘한 모델에 더 큰 영향력

즉, bagging은 분산 줄이기, boosting은 어려운 샘플 보완하기임

'학교수업 > 데이터 사이언스' 카테고리의 다른 글

Getting to Know Your Data  (0) 2026.04.27
Exercises  (0) 2026.04.13
데사 예상 문제  (0) 2026.04.11
Random Forest  (0) 2026.04.09
[6-1] Classification part 2  (0) 2026.04.06