2016-10-02 6 views
0

나는 질문을 가지고있다; 교차 검증에 관해서는 교차 검증이 최상의 매개 변수를 찾는 데 사용됩니다. 는하지만 "crossvalind"이 기능의 역할을 이해하지 않았다 : 교차 검증 인덱스를 생성, 그냥이 exemple처럼, 모델없이 데이터 세트를 취합니다교차 검증 기능 crossvalind

load fisheriris 
[g gn] = grp2idx(species);      
[trainIdx testIdx] = crossvalind('HoldOut', species, 1/3); 

답변

0

crossvalind() 함수에 데이터를 분할 두 그룹 : 훈련 세트와 교차 검증 세트. 예 : [trainIdx testIdx] = crossvalind ('HoldOut', size (species, 1), 1/3); 종의 데이터를 분리하는 것을 의미합니다 (트레이닝 세트의 2/3 및 교차 유효성 검사 세트의 1/3). 데이터가 같다고 가정하면 :

종 = datarow1; datarow2; datarow3; datarow4; datarow5는; datarow6이어서 trainIdx 같이 것 [1, 1, 0, 1, 1, 0] testIdx 것을 [0; 0; 1; 0; 0; 1]은 우리의 설정 crossvalind 함수의 총 6 개 요소에서 기차 세트에 4를 할당하고 교차 유효성 검사 세트에 2를 할당한다는 것을 의미합니다. 물론 이것은 0과 1의 인덱스가 함수를 호출 할 때마다 달라 지지만 그 사이의 비율은 고정되고 trainIdx + testIdx는 항상 1 (크기 (종, 1), 1) 일 것임을 의미하는 무작위 할당

crossvalind ('LeaveMout', size (species, 1), 2)는이 특별한 경우에 crossvalind ('HoldOut', size (species, 1), 1/3)와 정확히 동일합니다. 'HoldOut'형식에서는 'LeaveMout'옵션을 사용하여 0에서 1까지의 값을 갖는 매개 변수 P를 제공합니다 (예 : 위의 예에서는 1/3). 데이터 세트의 총 샘플 수는 10000 개입니다. 'Resubstitution'의 경우 : 교차 변형 ('Resubstitution', 크기 (종, 1), [1/3,2/3])은 아직 동일하지만 여기에도 [1/3, 3/4]은 일부 샘플이 열차 및 교차 유효성 검사 집합 또는 [1,1] 심지어는 모든 샘플이 두 세트 모두에서 사용됨을 의미합니다 (trainIdx = testIdx = [1; 1; 1; 1; 1; 1). crossvalind 도움말을 입력하고 항상 훨씬 더 자세하고 도움이되는 도움말 파일을 살펴 보시기 바랍니다.

+0

[Train, Test] = crossvalind ('HoldOut', N, P) [기차, 테스트] = crossvalind ('[Train, Test] = crossvalind ('Resubstitution', N, [P, Q]) –

+0

나는 나의 대답을 편집했고 도움이되기를 희망한다. – CodeBlackj