parameter_combinations = grid_search(feautre_selection_parameters, classifier_parameters) for i = 1:5 data_test_cv_outer = data_whole{i} data_train_cv_outer = data_whole-data_test_cv_outer for k = 1:number_of_parameter_combinations for j = 1:5 data_test_cv_inner = data_train_cv_outer{j} data_train_cv_inner = data_train_cv_outer-data_test_cv_inner feature_selected_inner = Fscore(data_train_cv_inner,feature_selection_parameters{k}) classifer_inner = classifier_construct(feature_selected_inner,classifier_parameters{k}) label_predict_cv{j} = predict(classifer_inner,data_test_cv_inner) end acc_cv(k) = acc_calculate(label_actual_cv,label_predict_cv) end index_max_acc_cv = max_index(acc_cv) best_parameter = parameter_combinations{index_max_acc_cv) feature_selected_outer = Fscore(data_train_cv_outer,best_feature_selection_parameter) classifier_outer = classifier_construct(feature_selected_outer,best_classifier_parameter) label_predict{i} = predict(classifier_outer,data_test_cv_outer) end acc_final = acc_calculate(label_actual,label_predict)