Как я могу выполнить десятикратную перекрестную проверку с помощью LibSVM?

Где я могу найти пример использования LibSVM (Java/Python) для выполнения 10-кратной перекрестной проверки набора данных?


person ruwanego    schedule 12.03.2011    source источник


Ответы (2)


В случае Java;

Вы можете использовать метод svm_cross_validation(), который предоставляется libsvm.

double[] target = new double[svmProblem.l];
svm.svm_cross_validation(svmProblem, svmParameter, 10, target );

Вы должны были создать свои экземпляры svm_problem и svm_parameter (svmProblem и svmParameter в примере). 3-й параметр функции — количество сгибов, цель — массив предсказанных значений меток для каждой выборки набора данных. Таким образом, длина целевого массива должна совпадать с длиной ваших входных данных.

person aykut    schedule 14.03.2011

Если я что-то не упустил в вашем вопросе, сценарий svmutil.py в подкаталоге python пакета libsvm предлагает n-кратный режим перекрестной проверки:

-v n: n-fold cross validation mode

Файл svm_train.java в подкаталоге java также предлагает такую ​​возможность:

+"-v n : n-fold cross validation mode\n"

Вы можете посмотреть в этих двух файлах пример кода.

person thkala    schedule 12.03.2011