나는 10 개 주름이 훈련하고 내가 500 사진의 샘플이 0-9에서 숫자를 인식하는 내장 함수를 사용하지 않고 검증을 통과 할 시도 (각 훈련하는 자리 및 테스트를위한 50.) 내가 대답을 구현하려고 MATLAB: 10 fold cross Validation without using existing functions 및 다른 웹 사이트 그러나 그것은 다량을 도왔다. 대부분 MATLAB을 처음 사용하기 때문에 조정해야 할 부분에 대해 많이 알지 못합니다. 이것은 지금까지 가지고있는 코드입니다.MATLAB에서 내장 함수를 사용하지 않고 10 배 교차 유효성 검사를 수행하는 방법은 무엇입니까?
c=zeros(10,size(x,2),size(x,3));
K=10;
k=10;
test= 1:50/K;
for fold =1:K
if(test(1)~=1)
train = x(1:test(1)-1,:,:);
if (test(5) ~=50)
train=[train ; x(test(end):50,:,:)];
end
else
train = x(test(1):50,:,:);
end
test = test+ones(1,50/K)*50/K;
end
for i =0:9
test=test+50/K*ones(1,5);
c(i+1,:,:)=cal_likelihood(x(1+i*50:50+i*50,:,:),50/k*(k-1));
end
변수 설명
- X는 모두 500 자리 사진을 계속 두 배 500x28x28입니다.
- 테스트는 테스트 세트입니다.
- 기차는 훈련 집합입니다. 기차 45
- 2 배 : 1 : 시험 5, 6, 10 개 주름을하기 위해
내가
- 1 배처럼 훈련 설정을 변경해야합니다 유효성 검사를 통과 6시 10분 테스트를 위해 1 : 5 11:50 기차로
문제는 훈련 세트를 6시 45 분에서 1시 5 분 및 11 시까 지 다른 세트로 이동하는 방법을 모르는 것입니다. : 50. 또는 이보다 더 좋은 루프를 작성할 수 있습니까?
PSS. 이 질문에 답하는 사람이 마음에 들지 않으면 500x28x28 두배가 실제로 의미하는 바가 무엇입니까?
은'500x28x28 double' 그것이 [다차원 배열]을 의미 (http://de.mathworks.com/help/matlab/math/multidimensional-arrays.html) (실제로는 3-D 어레이) 여기서 제 크기 '500'은 예제 (당신의 케이스에있는 그림)의 수를 나타내며, '28x28'은 각 그림의 길이와 너비를 나타냅니다. 각 그림은 28x28의 행렬로 표시됩니다. – uyaseen
@ uyaseen 고마워요. – RHLS