Оцените потерю с помощью перекрестной проверки
возвращает 10-кратную ошибочную оценку перекрестной проверки для функционального err = crossval(criterion,X,y,'Predfun',predfun)predfun на основе заданного criterion, любой 'mse' (среднеквадратическая ошибка) или 'msc' (misclassification уровень). Строки X и y соответствуйте наблюдениям и столбцам X соответствуйте переменным предикторам.
В этом случае, crossval выполняет 10-кратную перекрестную проверку можно следующим образом:
Разделите наблюдения в данных о предикторе X и переменная отклика y в 10 групп, каждая из которых имеет приблизительно то же количество наблюдений.
Используйте последние девять групп наблюдений, которые обучат модель, как задано в predfun. Используйте первую группу наблюдений как тестовые данные, передайте тестовые данные о предикторе обученной модели и вычислите ожидаемые значения, как задано в predfun. Вычислите ошибку, заданную criterion.
Используйте первую группу и последние восемь групп наблюдений, которые обучат модель, как задано в predfun. Используйте вторую группу наблюдений как тестовые данные, передайте тестовые данные обученной модели и вычислите ожидаемые значения, как задано в predfun. Вычислите ошибку, заданную criterion.
Продолжите подобным образом, пока каждая группа наблюдений не будет использоваться в качестве тестовых данных точно однажды.
Возвратите оценку средней погрешности как скалярный err.
выполняет 10-кратную перекрестную проверку для функционального values = crossval(fun,X)fun, примененный данные в X. Строки X соответствуйте наблюдениям и столбцам X соответствуйте переменным.
crossval обычно выполняет 10-кратную перекрестную проверку можно следующим образом:
Разделите данные в X в 10 групп, каждая из которых имеет приблизительно то же количество наблюдений.
Используйте последние девять групп данных, которые обучат модель, как задано в fun. Используйте первую группу данных как набор тестов, передайте набор тестов обученной модели и вычислите некоторое значение (например, потеря), как задано в fun.
Используйте первую группу и последние восемь групп данных, которые обучат модель, как задано в fun. Используйте вторую группу данных как набор тестов, передайте набор тестов обученной модели и вычислите некоторое значение, как задано в fun.
Продолжите подобным образом, пока каждая группа данных не будет использоваться в качестве набора тестов точно однажды.
Возвратите 10 вычисленных значений как векторный values.
___ = crossval(___, задает опции перекрестной проверки с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к любой из комбинаций входных аргументов и выходных аргументов в предыдущих синтаксисах. Например, Name,Value)'KFold',5 задает, чтобы выполнить 5-кратную перекрестную проверку.
Хорошая практика должна использовать стратификацию (см. Stratify) когда вы используете перекрестную проверку с алгоритмами классификации. В противном случае некоторые наборы тестов не могут включать наблюдения для всех классов.
Многие классификация и функции регрессии позволяют вам выполнять перекрестную проверку непосредственно.
То, когда вы используете подгонку, функционирует, такие как fitcsvm, fitctree, и fitrtree, можно задать опции перекрестной проверки при помощи аргументов пары "имя-значение". В качестве альтернативы можно сначала создать модели с этими подходящими функциями и затем создать разделенный объект при помощи crossval объектная функция. Используйте kfoldLoss и kfoldPredict возразите функциям, чтобы вычислить потерю и ожидаемые значения для разделенного объекта. Для получения дополнительной информации смотрите ClassificationPartitionedModel и RegressionPartitionedModel.
Можно также задать опции перекрестной проверки, когда вы выполняете лассо или эластичную сетевую регуляризацию с помощью lasso и lassoglm.
classify | confusionmat | cvpartition | kmeans | pca | regress