Matlab перекрестной проверки - функция crossval

Я не понимаю, что функция "crossval" в Matlab принимает в качестве первого параметра, я понимаю, что это функция для выполнения регрессии, но я не понимаю, что подразумевается как "некоторое критерий testval". Мне нужно использовать его на регрессоре K-nn, но примеры не все мне ясно объясняют.

vals = crossval(fun,X)

Каждый раз, когда он вызывается, fun должен использовать XTRAIN для подбора модели, а затем возвращать некоторый критерий testval, вычисленный в XTEST с использованием этой подобранной модели.

Вот где я читаю: справочник по Matlab


person Andrea    schedule 27.05.2014    source источник


Ответы (1)


Это должно быть похоже на функции оптимизации, где возвращаемое значение вашей функции подбора fun должно указывать, насколько хорошо оно соответствует данным. Как указано в документации, fun принимает два аргумента: набор обучающих данных XTRAIN и набор тестовых данных XTEST.

Если ваши данные X содержат столбец известных результатов X(:,1) и другие столбцы признаков X(:, 2:end), а ваши данные обучаются с использованием XTRAIN, то возвращаемое значение может быть таким же простым, как квадрат суммы ошибок подобранной модели:

testval = sum( (model(XTEST(:, 2:end)) - XTEST(:, 1)).^2 );

где model(XTEST(:, 2:end)) — это результат вашей подобранной модели для функций набора данных тестирования, XTEST, а XTEST(:, 1) — известные результаты для этих наборов функций.

person Engineero    schedule 27.05.2014
comment
Спасибо, это мне очень помогло! - person Andrea; 11.06.2014