Оцените потерю с помощью перекрестной проверки
возвращает 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