2013-03-15 4 views
1

Кто-нибудь знает, как выполнить Оставьте одно из перекрестных проверок в MATLAB ?? Мне нужен алгоритм LOOCV для классификации данных. Так, например. У меня есть набор тренировок 10, и я хочу вытащить один из набора для тестирования. Итак, это как 1 = тестирование и 9 для обучения, и делайте это снова до последнего обучения данных.Оставьте один алгоритм перекрестной проверки в matlab

Как насчет если мы имеем подготовку данных, как этот рак и не рак:

[C,F] = training('D:\cancer\',... 
    'D:\nocancer\'); 
+0

посмотрите на мой ответ [здесь] (http://stackoverflow.com/questions/15451301/how-to-create-leave-one-out-cross-validation-in-matlab) –

ответ

1

Вот что я делаю:

// Initialize result matrix 
Results = zeros(size(Datas,1),2); 
// Validate classifier settings with leave-one-out procedure 
for k=1:size(Datas,1) 
    // Extract sample 
    ind = Datas(k,:); 
    // Copy the database 
    Datas_mod = Datas; 
    // Copy the classes vector 
    Classes_mod = Classes; 
    // Keep the sample real class 
    Results(k,2) = Classes(k); 
    // Remove sample from database 
    Datas_mod(k,:) = []; 
    // Remove sample from class vector 
    Classes_mod(k) = []; 
    // Execute the classification algorithm 
    [Individu,MxD(k)] = knn(ind(1,1:size(ind,2)),Datas_mod,Classes_mod,5,700); 
    // Keep the class found by the classifier for the current sample 
    Results(k,1) = Individu(1,size(Individu,2)); 
end 

// Confusion matrix 
CM = nan_confusionmat(Results(:,1),Results(:,2)) // Scilab function, find your own 

Просто замените Knn на какой классификатор вы используете. Надеюсь, эта помощь.

Смежные вопросы