일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 나혼자코딩
- numpy
- 행렬
- 코딩독학
- 유학생
- sql연습문제
- 판다스
- 코딩공부
- 코딩
- 경사하강법
- 코드잇 TIL
- 다항회귀
- Seaborn
- HTML
- 로지스틱회귀
- 코드잇TIL
- for반복문
- 결정트리
- 파이썬
- 선형회귀
- 영국석사
- matplotlib
- 코드잇
- 데이터분석
- 런던
- SQL
- CSS
- 머신러닝
- 오늘도코드잇
- 윈도우함수
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(Machine Learning) k-겹 교차 검증 본문
k-겹 교차 검증 (k-fold cross validation)은 머신러닝 모델의 성능을 조금 더 정확하게 평가할 수 있는 방법입니다.
지금까지 머신 러닝 알고리즘을 적용해서 모델을 만들 떄를 생각해봅시다. 가장 먼저 주어진 데이터를 training set과 test set으로 나눴습니다. training set 은 모델이 인풋 변수를 이용해서 아웃풋 변수를 예측할 수 있도록 학습시키는 데 사용했고, test set은 학습시킨 모델이 얼마나 예측을 잘 하는지, 모델의 성능이 얼마나 좋은지를 파악하기 위해서 썼습니다.
이렇게 모델의 성능을 파악하면 문제가 생길 수 있습니다.
이런 식으로 test set 에서만 성능이 좋은 걸 수 도 있고,
반대로 딱 test set 에서만 성능이 안 좋게 나올 수도 있습니다.
교차 검증은 이런 문제를 해결해주는 방법입니다. 교차 검증 중 가장 많이 쓰이는 k-겹 교차 검증에 대해서 알아보겠습니다.
k-겹 교차 검증
k-겹 교차 검증을 할 때는 먼저 전체 데이터를 k개의 같은 사이즈로 나눕니다. 예를 들어 k=5, 데이터가 총 1000개 있다면 이 데이터를 200개씩 5개의 셋으로 나누는 것입니다.
이 데이터 셋들을 이용해서 모델의 성능을 여러 번 검증할 건데 맨 처음에는 가장 위에 있는 데이터 셋을 test set으로 사용하고 나머지를 training set으로 사용합니다.
그다음에는 두 번째 데이터 셋을 test set으로 사용합니다. 나머지 4개를 training set으로 사용해서 다시 모델을 학습시키고, 성능을 파악합니다.
이 과정을 모든 데이터 셋에 반복해 줍니다. 그러면 5개의 테스트 셋에 대한 성능이 있을 텐데요, 이 성능 5개의 평균을 모델 성능으로 보는 겁니다. 모델의 성능을 여러 번 다른 데이터로 검증하기 때문에 평가에 대한 신뢰가 올라가는 것입니다.
k 고르기
k는 데이터가 몇 개가 있느냐에 따라 다르겠지만 가장 일반적으로 사용하는 숫자는 5입니다. 그리고 데이터가 많을수록 우연히 test set에서만 성능이 다르게 나올 확률이 적기 때문에 작은 k를 사용해도 됩니다.
'코딩공부 > Machine Learning' 카테고리의 다른 글
(Machine Learning) 결정 트리, if-else문으로 구현하기 (1) | 2023.10.04 |
---|---|
(Machine Learning) 하이퍼 파라미터(Hyperparameter) 그리드 서치 (0) | 2023.09.22 |
(Machine Learning) L1, L2 정규화 (Regularization) (0) | 2023.09.20 |
(Machine Learning) 편향(Bias)과 분산(Variance) 트레이드 오프(Tradeoff) (0) | 2023.09.18 |
(Machine Learning) one-hot encoding (0) | 2023.09.18 |