2012-11-18 4 views
0

Matlab에서 교차 유효성 검사를 구현하는 중 원시 기능을 제외한 다른 기능을 사용하지 않고 있습니다.Matlab 매트릭스에서 특정 행을 가져 오기

1 
2 
3 
.. 
N-M 

을 두 번째 반복에서 : 나는 그것을 먹고 싶어

1 
2 
3 
.. 
N 

가 나는 배 크기의 첫 번째 반복에서 M

있습니다

나는 그런 기질을 가지고 :

1 
2 
3 
.. 
.. //Number o f M elements didn't included here 
N-M+1 
N-M+2 
.. 
N 
나는 다른 변수로 할당 할 요소의 집합을 포함하지 않는 또는 나는 그래서이 하나가 성능을 더해야합니다 (처리 할 수있는 인덱스를 알고 싶을 때 나는

M+1 
M+2 
.. 
N 

을 처리 할 때까지 10

으로 반복)

교차 검증에 대한

추가 정보는 : http://en.wikipedia.org/wiki/Cross-validation_(statistics)

이 그림은) 내가 원하는 (조지아 테크 대학의 슬라이드를 형성 설명 : enter image description here

저는 matlab를 처음 사용하니 쉽게 구현할 수 있습니까?

+3

의 배수 인 경우 작동 있음을 알아 두셔야합니다 ... 당신은 단순히 K의 부분 집합으로 벡터를 분할하려고합니까? – jerad

+0

두 번째 반복에서 나는 2 개의 부분 집합을 가진다. 그 중 하나는 M 사이즈이고, 다른 하나는 NM 사이즈입니다 – kamaci

+0

@ 제 라드 내가 원하는 것을 설명하는 그래픽을 포함했습니다 – kamaci

답변

0

에 의해 코드 의지 세그먼트의 다음 비트 데이터를 그것을 할 수 있습니다.

K = 5; %Fold size 
N = 25; % Number of data points 

data = rand(1,N); % Some fake data 

testIdxs = reshape(1:N,K, N/k)'; %now each row has the indices for one test set 

% All indices that aren't in the test, should belong to the training set. 
trainIdx = zeros(K, N-K); 
for ix = 1:N/k 
    temp    = 1:25; 
    temp(testIdxs(ix,:)) = []; 
    trainIdx(ix,:)  = temp; 
end 

이 방법은 N 당신은 두 번째 반복 날을 잃은 K.

0

교차 유효성 검사는 일반적으로 crossvalind 함수를 통해 수행 할 수 있습니다. 그래픽에 도시 된 바와 같이

당신은

Indices = crossvalind('Kfold', matrix , M) 
+0

... Bioinformatics 도구 상자에 있으므로 OP가 아닌 "기본"Matlab입니다. 요청했다. –