Cross Validation(교차 검증)이란?
우리가 가진 데이터를 잘게 나누어서 여러 번 학습하고 시험해보는 방법입니다. 예를 들어 공부를 하고 나서 문제를 여러 번 풀어보는 것과 비슷합니다.
예시를 들어 설명하겠습니다.
1. 데이터 나누기
우리가 학교에서 배운 내용을 친구들과 나눠서 공부한다고 생각해봅시다. 상대는 100장의 문제지를 가지고 있습니다. 이제, 이 문제지를 5개의 작은 묶음으로 나눕니다. 그러면 각각 20장씩 5개의 묶음이 생깁니다.
2. 한 묶음은 시험용, 나머지는 공부용:
이 5개의 묶음 중에서 1개의 묶음(20장)을 시험지로 사용합니다. 나머지 4개의 묶음(80장)은 공부할 때 사용합니다.
이제, 이 80장으로 열심히 공부하고, 공부가 끝나면 시험(20장)을 보면서 얼마나 잘 공부했는지 확인합니다.
3. 묶음 바꿔가며 반복하기:
이번엔 시험지로 썼던 20장의 묶음을 공부할 때 사용하고, 다른 묶음을 시험지로 바꾸는 겁니다. 이렇게 시험과 공부를 반복합니다. 즉, 각각의 묶음이 한 번씩 시험지가 될 때까지 여러 번 연습하는 것입니다.
4. 결과 평균내기:
각 시험에서 얻은 점수를 모아서 평균을 냅니다. 이 평균 점수가 우리가 공부를 얼마나 잘했는지 나타내는 것입니다. 이렇게 여러 번 시험을 보면 시험지에 따라 결과가 달라질 때도 있지만, 여러 번 시험을 보면 더 정확하게 실력을 알 수 있습니다.
교차 검증의 장점:
더 정확한 평가 : 한 번만 시험을 보면 운 좋게 좋은 점수를 받을 수도 있고, 운 나쁘게 점수가 낮을 수도 있습니다. 여러 번 수행하면 더 공정하게 실력을 평가할 수 있습니다.
안전한 학습 : 교차 검증을 하면, 새로운 문제를 풀 때도 좋은 결과가 나올 확률이 높아집니다. 왜냐하면 여러 묶음을 바꿔가며 시험을 보기 떄문에, 모든 데이터에 대해 고르게 학습할 수 있습니다.
교차 검증이 중요한 이유:
1. 과적합 방지: 어떤 모델은 특정 데이터에서만 잘 작동하고, 다른 데이터에서는 잘 작동하지 않을 수 있습니다. 이를 과적합(overfitting)이라고 합니다. 교차 검증은 데이터를 여러 번 나눠서 평가하기 떄문에, 모델이 새로운 데이터를 만났을 때도 잘 작동할지를 미리 확인할 수 있습니다.
2. 평균 성능 측정 : 여러 번 시험을 보기 때문에, 단 한 번의 시험에서 우연히 좋은 점수가 나와도 그게 전체 모델 성능을 대표하지 않습니다. 여러 번 다른 테스트 세트로 측정하고 평균을 내면 더 신뢰할 수 있는 정확도를 얻을 수 있습니다.
3. 모델 비교 : 교차 검증을 통해 여러 모델의 성능을 비교할 수도 있습니다. 여러 모델을 교차 검증 해보고, 평균 정확도가 가장 높은 모델을 선택하면 되는 것입니다.
정리 & 요약
교차 검증은 데이터를 여러 번 나눠서 학습하고 평가하는 방법입니다. 여러 번 시험을 보고 그 결과를 평균 내서, 모델이 얼마나 잘 예측하는지에 대해 더 정확하게 알 수 있습니다.
즉, 교차 검증은 모델의 정확도를 더 자세하고 신뢰성 있게 평가하기 위해 사용하는 방법입니다.
이상으로 교차검증에 대한 이론을 마치겠습니다.
다음 글은 교차 검증을 python으로 구현해 보겠습니다.
이 글은 제로베이스 데이터 분석 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
'Data Analyst > ML' 카테고리의 다른 글
[Zero-base] Precision and Recall (0) | 2024.10.07 |
---|---|
[Zero-base] Cross Validation(교차 검증) - 2 (0) | 2024.10.04 |
[Zero-base] Logistic Regression - 2 (0) | 2024.10.03 |
[Zero-base] Logistic Regression - 1 (1) | 2024.10.03 |
[Zero-base] Pipeline (0) | 2024.10.03 |