2013-10-12 2 views
20

크로스 검증과 그리드 검색의 차이점을 간단히 설명 할 수있는 사람이 있습니까? 어떻게 작동합니까? 먼저 교차 검증을 한 다음 그리드 검색을 수행해야합니까?교차 유효성 검사 및 그리드 검색

내 질문은이 문서를 읽기에서 온다 : 당신이 당신의 모델을 평가에 사용할 데이터의 일부를 예약 할 때 sklearn

답변

56

교차 검증입니다. 다양한 교차 유효성 검사 방법이 있습니다. 가장 단순한 개념은 데이터의 70 % (단지 숫자를 작성하고 70 % 일 필요는 없습니다)를 교육에 사용하고 나머지 30 %의 데이터를 사용하여 모델을 평가하는 것입니다 공연. 모델을 교육하고 평가하는 데 다른 데이터가 필요한 이유는 초과 적합성으로부터 보호하는 것입니다. 물론 실제로 사용되는 k-fold 교차 유효성 검사와 같은 다른 (약간 더 복잡한) 교차 유효성 검사 기술이 있습니다.

그리드 검색은 모델 집합 (그리드에있는 매개 변수 값이 서로 다름)이 있음을 의미합니다. 당신은 각 모델을 훈련시키고 교차 검증을 사용하여 그것을 평가하는 것입니다. 그런 다음 가장 잘 수행 된 것을 선택하십시오.

구체적인 예를 들어, 지원 벡터 머신을 사용하는 경우 gammaC에 다른 값을 사용할 수 있습니다. 예를 들어 (gamma, C)에 대한 값이 (1, 1), (0.1, 1), (1, 10), (0.1, 10) 인 그리드를 만들 수 있습니다. 그것은 마치 gamma에 대해 [1, 0.1]이고 C에 대해 [1, 10] 인 제품이기 때문에 그리드입니다. 그리드 검색은 기본적으로이 네 쌍의 (gamma, C) 값 각각에 대해 SVM을 학습 한 다음 교차 유효성 검사를 사용하여 평가하고 가장 잘 수행 한 것을 선택합니다.

8

교차 유효성 검사는 모델의 테스트 세트 성능 (일반화)을 견고하게 추정하기위한 방법입니다. 그리드 검색은 매개 변수 격자로 매개 변수화 된 최상의 모델 군을 선택하는 방법입니다.

여기서 "모델"은 훈련 된 인스턴스, 더 많은 알고리즘과 함께 매개 변수 (예 : SVC(C=1, kernel='poly'))를 의미하지 않습니다.

간단하게 테스트 및 교육 자료 등을 분리,

+2

글쎄, 나는 그것을 이해합니다. 그러나 scikit-learn의 예제에서는 먼저 X_train, X_test, y_train, y_test = train_test_split ( X, y, test_size = 0)을 수행하여 data_set을 분할합니다.5, random_state = 0' 그리고 그리드 검색'clf = GridSearchCV (SVC (C = 1), tuned_parameters, cv = 5, scoring = score)에 없다 '는 것을 의미합니다. 트레이닝을 500 열차와 500 개의 테스트 오브젝트로 설정하면 그리드 검색은 500의 트레이닝 세트를 "cv = 5"5 배 교차 유효성 검사로 나눕니다. 따라서 500 개의 오브젝트가 250 및 250 또는 400 및 100 등으로 분할됩니다. ?! – Linda

+6

네, 맞습니다. 데이터의 절반은 ** 그리드 검색 모델 선택 (5 배 교차 검증을 사용) ** 후에 평가를 위해 예약됩니다. 그 이유는 그들이 최상의 모델을 선택하기를 원할뿐만 아니라 그것이 얼마나 잘 일반화되는지 (새로운 데이터에서 얼마나 잘 수행되는지)에 대한 좋은 견적을 가지기 위해서입니다. 가장 높은 점수를 얻은 모델을 선택했기 때문에 그리드 검색 교차 유효성 검사에서 점수를 사용할 수 없으므로 점수에 선택 바이어스가있을 수 있습니다. 그래서 그리드 검색이 끝난 후에도 테스트 할 데이터의 일부분을 유지하는 것입니다. –

5

교차 검증 (즉 같은 간단한 단어를 자격이 있는지 난 그냥 또는 Neeman의 좋은 설명뿐만 아니라 짧은 consise 정의를주고 싶어, 확실하지 않다) 테스트 데이터로 교육 결과를 검증합니다. 내가 아는 두 가지 교차 유효성 검사 기술이 있습니다.

먼저 테스트/열차 교차 유효성 검사. 테스트 및 기차로 데이터 분할.

둘째, k- 배 교차 검증은 데이터를 k 빈으로 분할하고 각 bin을 테스트 데이터로 사용하고 나머지 데이터를 학습 데이터로 사용하고 테스트 데이터에 대해 유효성을 검사합니다. 이 과정을 k 번 반복하십시오. 그리고 평균 성능을 얻으십시오. k- 배 교차 검증은 테스트 데이터와 학습 데이터를 최대화하므로 작은 데이터 세트에 특히 유용합니다.

그리드 검색; 체계적으로 여러 매개 변수 조합을 통해 작업 할 수 있으며, 각 매개 변수의 유효성을 검사하고 어느 매개 변수가 최상의 성능을 제공하는지 확인할 수 있습니다. 매개 변수를 변경하는 많은 조합을 통해 작업 할 수 있습니다.

관련 문제