교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
편집기에 의한 이미지

소개

기계 학습의 가장 어려운 부분 중 하나는 모델 자체를 만드는 것이 아니라 성능을 평가하는 것입니다.

모델은 단일 열차/테스트 분할에서 우수하게 보일 수 있지만 실제로 사용하면 분리됩니다. 그 이유는 단일 분할이 모델을 한 번만 테스트하고 테스트 세트가 향후 직면하게 될 데이터의 전체 변동성을 캡처하지 않을 수 있기 때문입니다. 결과적으로, 모델은 실제보다 더 잘 보일 수 있으며, 과적으로 적합하거나 오해의 소지가 높은 점수로 이어질 수 있습니다. 그것이 교차 검증이 시작되는 곳입니다.

이 기사에서는 일반 영어로 교차 검증을 해체하고 Hold-Out 방법보다 더 신뢰할 수있는 이유를 제공하고 기본 코드 및 이미지와 함께 사용하는 방법을 보여줍니다.

교차 검증이란 무엇입니까?

교차 검증은 하나의 하위 집합에만 의존하는 대신 여러 데이터 서브 세트를 사용하여 모델의 성능을 평가하기위한 기계 학습 검증 절차입니다. 이 개념의 기본 아이디어는 모든 데이터 포인트에 최종 성능 결정의 일부로 교육 세트 및 테스트 세트에 나타날 수있는 기회를 제공하는 것입니다. 따라서 모델은 다른 스플릿을 사용하여 여러 번 평가되며 선택한 성능 측정은 평균화됩니다.

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
저자의 이미지

단일 열차 테스트 스플릿에 대한 교차 검증의 주요 장점은 교차 검증으로 인해 모델의 성능이 접힘에 걸쳐 평균화 될 수 있기 때문에 성능을보다 안정적으로 추정한다는 것입니다.

간단히 말해서, 하나의 테스트 세트에는 모델의 비정상적으로 높은 정확도로 이어지는 예제가 포함되거나 다른 예제로 인해 비정상적으로 성능이 낮아질 수있는 방식으로 발생할 수 있습니다. 또한 교차 검증을 통해 데이터를 더 잘 활용할 수 있습니다. 이는 소규모 데이터 세트로 작업하는 경우 중요합니다. 교차 검증으로 인해 영구적으로 큰 부분을 제쳐두고 귀중한 정보를 낭비 할 필요는 없습니다. 대신, 교차 검증은 동일한 관찰이 여러 시간에 열차 또는 시험 역할을 수행 할 수 있음을 의미합니다. 분명히, 당신의 모델은 하나의 큰 테스트와는 달리 여러 미니 복을 사용합니다.

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
저자의 이미지

가장 일반적인 유형의 교차 검증

교차 검증 유형이 있으며 여기서 우리는 가장 일반적인 4 가지를 살펴 봅니다.

// 1. K- 폴드 교차 검증

교차 검증의 가장 친숙한 방법은 K- 폴드 교차 검증입니다. 이 방법에서는 데이터 세트가 폴드라고도하는 k 동일한 부분으로 분할됩니다. 이 모델은 K-1 주름으로 훈련되고 남은 접이식에서 테스트됩니다. 프로세스는 모든 폴드가 한 번 테스트 세트가 될 때까지 계속됩니다. 모든 주름의 점수는 평균화되어 모델의 정확도를 안정적인 측정 값을 형성합니다.

예를 들어, 5 배 교차 검증 사례에서 데이터 세트는 5 개의 부분으로 나뉘며 각 부분은 최종 성능 점수를 계산하기 위해 모든 것이 평균화되기 전에 한 번 테스트 세트가됩니다.

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
저자의 이미지

// 2. 계층화 된 K- 폴드

실제 데이터 세트가 종종 불균형 인 분류 문제를 다룰 때, 계층화 된 K- 폴드 교차 검증이 선호됩니다. 표준 K- 폴드에서는 테스트 폴드 중 하나에 클래스 B 인스턴스가 거의 없거나 전혀없는 경우 등급으로 치우친 클래스 분포가있는 테스트 폴드가 발생할 수 있습니다. 계층화 된 K- 폴드는 모든 접힘이 거의 동일한 비율의 클래스를 공유하도록 보장합니다. 데이터 세트에 90% 클래스 A 및 10% 클래스 B가있는 경우,이 경우 각 접이식은 약 90% : 10% 비율을 가지므로보다 일관되고 공정한 평가를 제공합니다.

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
저자의 이미지

// 3. Leave-One-Out Cross-Validation (LOOCV)

LOOCV (Leave-One-Out Cross-Validation)는 폴드 수가 데이터 포인트 수와 같은 K- 폴드의 극단적 인 경우입니다. 즉, 각 실행에 대해 모델은 하나의 관찰을 제외한 모든 관찰에 대해 교육을 받고 단일 관찰이 테스트 세트로 사용됨을 의미합니다.

프로세스는 모든 지점이 한 번 테스트 될 때까지 반복되며 결과는 평균화됩니다. LOOCV는 거의 편견없는 성능 추정치를 제공 할 수 있지만, 데이터 포인트가있는만큼 모델을 여러 번 훈련해야하기 때문에 더 큰 데이터 세트에서는 매우 비싸다.

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
저자의 이미지

// 4. 시계열 교차 검증

재무 가격, 센서 판독 또는 사용자 활동 로그와 같은 시간적 데이터로 작업 할 때 시계열 교차 검증이 필요합니다. 데이터를 무작위로 뒤섞으면 미래의 정보를 사용하여 과거를 예측하기 위해 자연스러운 시간 순서와 위험 데이터 누출이 나옵니다.

대신, 폴드는 확장 창 (교육 세트의 크기를 점진적으로 늘리는) 또는 롤링 창 (시간이 지남에 따라 앞으로 나아가는 고정 크기 훈련 세트를 유지)을 사용하여 연대순으로 제작됩니다. 이 접근법은 시간적 종속성을 존중하고 예측 작업에 대한 현실적인 성능 추정치를 생성합니다.

교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드교차 검증이란 무엇입니까? 다이어그램이있는 평범한 영어 가이드
저자의 이미지

편향 분산 상충 및 교차 검증

교차 검증은 모델 평가에서 바이어스 분량 트레이드 오프를 해결하는 데 먼 길을갑니다. 단일 열차 테스트 분할을 사용하면 결과가 테스트 세트에서 어떤 행이 끝나는 지에 크게 의존하기 때문에 성능 추정치의 차이가 높습니다.

그러나 교차 검증을 사용하면 여러 테스트 세트에 대한 성능을 평균하여 분산을 줄이고 모델 성능에 대한 훨씬 더 안정적인 추정치를 제공합니다. 확실히, 교차 검증은 바이어스를 완전히 제거하지 못할 것입니다. 교차 검증은 라벨이 나쁘거나 체계적인 오류가있는 데이터 세트를 해결할 수 없기 때문에 분명합니다. 그러나 거의 모든 실용적인 경우에는 단일 테스트보다 보이지 않는 데이터에 대한 모델 성능이 훨씬 더 나을 것입니다.

Scikit-Learn이있는 Python의 예

이 간단한 예제는 5 배 교차 검증을 사용하여 홍채 데이터 세트에서 로지스틱 회귀 모델을 훈련시킵니다. Scikit-Learn). 출력은 각 폴드의 점수와 평균 정확도를 보여 주며, 이는 일회성 테스트가 제공 할 수있는 것보다 성능을 훨씬 더 많이 나타냅니다.

from sklearn.model_selection import cross_val_score, KFold
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
model = LogisticRegression(max_iter=1000)

kfold = KFold(n_splits=5, shuffle=True, random_state=42)
scores = cross_val_score(model, X, y, cv=kfold)

print("Cross-validation scores:", scores)
print("Average accuracy:", scores.mean())

마무리

교차 검증은 기계 학습 모델을 평가하기위한 가장 강력한 기술 중 하나입니다. 하나의 데이터 테스트를 여러 데이터 테스트로 바꾸어 모델의 성능에 대한 훨씬 신뢰할 수있는 그림을 제공합니다. 홀드 아웃 방법 또는 단일 열차 테스트 분할과는 달리, 하나의 임의의 데이터 세트 파티션으로 과적으로 적합 할 가능성을 줄이고 각 데이터 조각을 더 잘 활용할 수 있습니다.

우리가 이것을 마무리 할 때, 명심해야 할 모범 사례 중 일부는 다음과 같습니다.

  • 분할하기 전에 데이터를 셔플하십시오 (시계열 제외)
  • 분류 작업에 계층화 된 K- 폴드를 사용하십시오
  • 대형 K 또는 LOOCV로 계산 비용을 조심하십시오.
  • 스케일러, 인코더 및 기능 선택을 피팅하여 데이터 누출 방지

다음 모델을 개발하는 동안 단순히 하나의 테스트 세트에 의존하는 것은 오해의 소지가있는 해석으로 가득 차있을 수 있습니다. K- 폴드 교차 검증 또는 이와 유사한 방법을 사용하면 실제 세계에서 모델이 어떻게 수행 될 수 있는지 더 잘 이해하는 데 도움이됩니다.

Josep Ferrer 바르셀로나의 분석 엔지니어입니다. 그는 물리 공학을 졸업했으며 현재 인간 이동성에 적용되는 데이터 과학 분야에서 일하고 있습니다. 그는 데이터 과학 및 기술에 중점을 둔 파트 타임 콘텐츠 제작자입니다. Josep은 AI의 모든 것에 글을 썼으며 현장에서 진행중인 폭발의 적용을 다루고 있습니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다