컴퓨터공학

[머신러닝] Resampling

TaeGyeong Lee 2023. 6. 12. 19:02

Resampling

Test 데이터가 현저히 부족, 접근에 제한 있음 -> train 데이터에서 다양한 방법으로 리샘플링하는 것이 현명함, CV와 Bootstraping 두가지 방법이 있음

 

Cross-Validation

  • validation set = subset of TRAIN DATA ===> test error rate의 추정치를 뽑을 수 있음
  • 다양한 split 방식이 존재

 

Randomly Split

  • 무작위로 절반 validation set, 절반 training set
  • 장점 : 간단
  • 단점 : high variability MSE (무작위로 split 하므로 변동성 높음), sample 적음 (절반을 validation set 으로 사용하므로)

 

LOOCV (Leave One Out Cross Validation)

n개의 데이터가 있다고 하였을 때,

  • 1 : validation + (n-1) : training
  • 장점 : low bias (대부분의 데이터셋이 사용), low variability MSE (MSE 변동성 낮음)
  • 단점 : 간단하지 않음 (n번 계산해야 함)

 

K-Fold Cross Validation

n개의 데이터가 있다고 하였을 때,

  • K : validation + (n-K) : training
  • K=n 이면 -> LOOCV
  • 성능이 높은 LOOCV에 견주는 성능을 낼 수 있음

 

Bootstraping

사용 가능한 데이터를 활용하여 근사치를 찾는 방법 -> 복원 추출(replacement)

통계적 계산방법에 의하면 아래와 같은 계산을 통해 최적의 a를 구할 수 있다. 그러나 우리는 각 시그마 값들을 모른다.

만약 우리가 True model 을 알고 있다고 했을 때 100개의 샘플을 뽑아서 a 값의 평균을 구해보면, 실제 a와 매우 유사하다. (참) -> 이 아이디어를 통해 사용가능한 train data를 randomly select n observation with replacement 하여 참인 방식을 구현할 수 있다. -> 근사할 것으로 보이는 a 근사치를 구할 수 있다는 것