Оценка потерь с помощью перекрестной проверки
возвращает 10-кратную оценку ошибки перекрестной проверки для функции err = crossval(criterion,X,y,'Predfun',predfun)predfun на основе указанного criterion, либо 'mse' (средняя квадратичная ошибка) или 'msc' (коэффициент неправильной классификации). Строки X и y соответствуют наблюдениям и столбцам X соответствуют переменным предиктора.
Дополнительные сведения см. в разделе Общие шаги перекрестной проверки для предфуна.
выполняет 10-кратную перекрестную проверку для функции values = crossval(fun,X)fun, применяется к данным в X. Строки X соответствуют наблюдениям и столбцам X соответствуют переменным.
Дополнительные сведения см. в разделе Общие шаги перекрестной проверки.
___ = crossval(___, задает параметры перекрестной проверки с использованием одного или нескольких аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов и выходных аргументов в предыдущих синтаксисах. Например, Name,Value)'KFold',5 указывает на выполнение пятикратной перекрестной проверки.
Вычислите среднюю квадратичную ошибку регрессионной модели, используя 10-кратную перекрестную проверку.
Загрузить carsmall набор данных. Поместите в матрицу значения ускорения, лошадиных сил, веса и миль на галлон (MPG) data. Удалить все строки, содержащие NaN значения.
load carsmall
data = [Acceleration Horsepower Weight MPG];
data(any(isnan(data),2),:) = [];Укажите последний столбец data, что соответствует MPG, в качестве переменной ответа y. Укажите другие столбцы data в качестве данных предиктора X. Добавление столбца из них в X когда функция регрессии использует regress, как в этом примере.
Примечание: regress полезен, когда просто нужны оценки коэффициентов или остатки регрессионной модели. Если необходимо дополнительно исследовать подогнанную регрессионную модель, создайте объект модели линейной регрессии с помощью fitlm. Пример использования fitlm и crossval, см. раздел Расчет средней абсолютной ошибки с использованием перекрестной проверки.
y = data(:,4); X = [ones(length(y),1) data(:,1:3)];
Создание пользовательской функции regf (показано в конце этого примера). Эта функция подгоняет регрессионную модель к учебным данным и затем вычисляет прогнозируемые значения на тестовом наборе.
Примечание.Если для этого примера используется файл сценария в реальном времени, regf функция уже включена в конец файла. В противном случае необходимо создать эту функцию в конце файла .m или добавить ее в качестве файла по пути MATLAB ®.
Вычислите 10-кратную среднеквадратичную ошибку по умолчанию для регрессионной модели с данными предиктора X и переменная ответа y.
rng('default') % For reproducibility cvMSE = crossval('mse',X,y,'Predfun',@regf)
cvMSE = 17.5399
Этот код создает функцию regf.
function yfit = regf(Xtrain,ytrain,Xtest) b = regress(ytrain,Xtrain); yfit = Xtest*b; end
Вычислите ошибку неправильной классификации модели логистической регрессии, обученной на числовых и категориальных данных предиктора, используя 10-кратную перекрестную проверку.
Загрузить patients набор данных. Укажите числовые переменные Diastolic и Systolic и категориальная переменная Gender в качестве предикторов и указать Smoker в качестве переменной ответа.
load patients
X1 = Diastolic;
X2 = categorical(Gender);
X3 = Systolic;
y = Smoker;Создание пользовательской функции classf (показано в конце этого примера). Эта функция соответствует модели логистической регрессии учебным данным, а затем классифицирует тестовые данные.
Примечание.Если для этого примера используется файл сценария в реальном времени, classf функция уже включена в конец файла. В противном случае необходимо создать эту функцию в конце файла .m или добавить ее в качестве файла по пути MATLAB ®.
Вычислите 10-кратную ошибку ошибочной классификации перекрестной проверки для модели с данными предиктора X1, X2, и X3 и переменная ответа y. Определить 'Stratify',y обеспечить, чтобы в учебных и тестовых наборах была примерно одинаковая доля курильщиков.
rng('default') % For reproducibility err = crossval('mcr',X1,X2,X3,y,'Predfun',@classf,'Stratify',y)
err = 0.1100
Этот код создает функцию classf.
function pred = classf(X1train,X2train,X3train,ytrain,X1test,X2test,X3test) Xtrain = table(X1train,X2train,X3train,ytrain, ... 'VariableNames',{'Diastolic','Gender','Systolic','Smoker'}); Xtest = table(X1test,X2test,X3test, ... 'VariableNames',{'Diastolic','Gender','Systolic'}); modelspec = 'Smoker ~ Diastolic + Gender + Systolic'; mdl = fitglm(Xtrain,modelspec,'Distribution','binomial'); yfit = predict(mdl,Xtest); pred = (yfit > 0.5); end
Для заданного числа кластеров вычислите перекрестно подтвержденную сумму квадратных расстояний между наблюдениями и их ближайшим центром кластера. Сравните результаты для одного-десяти кластеров.
Загрузить fisheriris набор данных. X - матрица meas, который содержит измерения цветов для 150 различных цветов.
load fisheriris
X = meas;Создание пользовательской функции clustf (показано в конце этого примера). Эта функция выполняет следующие шаги:
Стандартизация данных обучения.
разделять данные обучения на k кластеры.
Преобразуйте тестовые данные, используя среднее значение обучающих данных и стандартное отклонение.
Вычислите расстояние от каждой точки данных теста до ближайшего центра кластера, или центроида.
Вычислите сумму квадратов расстояний.
Примечание.Если для этого примера используется файл сценария в реальном времени, clustf функция уже включена в конец файла. В противном случае необходимо создать функцию в конце файла .m или добавить ее в качестве файла по пути MATLAB ®.
Создать for цикл, указывающий количество кластеров k для каждой итерации. Для каждого фиксированного количества кластеров передайте соответствующее clustf функция для crossval. Поскольку crossval выполняет 10-кратную перекрестную проверку по умолчанию, программа вычисляет 10 сумм квадратичных расстояний, по одной для каждого раздела обучающих и тестовых данных. Возьмем сумму этих значений; результатом является перекрестно проверенная сумма квадратных расстояний для данного числа кластеров.
rng('default') % For reproducibility cvdist = zeros(5,1); for k = 1:10 fun = @(Xtrain,Xtest)clustf(Xtrain,Xtest,k); distances = crossval(fun,X); cvdist(k) = sum(distances); end
Постройте график перекрестно проверенной суммы квадратов расстояний для каждого числа кластеров.
plot(cvdist) xlabel('Number of Clusters') ylabel('CV Sum of Squared Distances')

В общем, при определении того, сколько кластеров использовать, рассмотрим наибольшее количество кластеров, которое соответствует значительному уменьшению перекрестно подтвержденной суммы квадратных расстояний. Для этого примера использование двух или трех кластеров представляется целесообразным, но использование более трех кластеров не подходит.
Этот код создает функцию clustf.
function distances = clustf(Xtrain,Xtest,k) [Ztrain,Zmean,Zstd] = zscore(Xtrain); [~,C] = kmeans(Ztrain,k); % Creates k clusters Ztest = (Xtest-Zmean)./Zstd; d = pdist2(C,Ztest,'euclidean','Smallest',1); distances = sum(d.^2); end
Вычислите среднюю абсолютную ошибку регрессионной модели, используя 10-кратную перекрестную проверку.
Загрузить carsmall набор данных. Укажите Acceleration и Displacement переменные как предикторы и Weight переменная в качестве ответа.
load carsmall
X1 = Acceleration;
X2 = Displacement;
y = Weight;Создание пользовательской функции regf (показано в конце этого примера). Эта функция подгоняет регрессионную модель к учебным данным и затем вычисляет прогнозируемые веса автомобиля на тестовом наборе. Функция сравнивает прогнозируемые значения веса автомобиля с истинными значениями, а затем вычисляет среднюю абсолютную ошибку (MAE) и MAE, скорректированную в соответствии с диапазоном весов испытуемого набора автомобилей.
Примечание.Если для этого примера используется файл сценария в реальном времени, regf функция уже включена в конец файла. В противном случае необходимо создать эту функцию в конце файла .m или добавить ее в качестве файла по пути MATLAB ®.
По умолчанию crossval выполняет 10-кратную перекрестную проверку. Для каждого из 10 разделов обучающего и тестового набора данных в X1, X2, и y, вычислить MAE и скорректированные значения MAE с помощью regf функция. Найдите средний MAE и средний скорректированный MAE.
rng('default') % For reproducibility values = crossval(@regf,X1,X2,y)
values = 10×2
319.2261 0.1132
342.3722 0.1240
214.3735 0.0902
174.7247 0.1128
189.4835 0.0832
249.4359 0.1003
194.4210 0.0845
348.7437 0.1700
283.1761 0.1187
210.7444 0.1325
mean(values)
ans = 1×2
252.6701 0.1129
Этот код создает функцию regf.
function errors = regf(X1train,X2train,ytrain,X1test,X2test,ytest) tbltrain = table(X1train,X2train,ytrain, ... 'VariableNames',{'Acceleration','Displacement','Weight'}); tbltest = table(X1test,X2test,ytest, ... 'VariableNames',{'Acceleration','Displacement','Weight'}); mdl = fitlm(tbltrain,'Weight ~ Acceleration + Displacement'); yfit = predict(mdl,tbltest); MAE = mean(abs(yfit-tbltest.Weight)); adjMAE = MAE/range(tbltest.Weight); errors = [MAE adjMAE]; end
Вычислите ошибку неправильной классификации дерева классификации с помощью анализа основных компонентов (PCA) и пятикратной перекрестной проверки.
Загрузить fisheriris набор данных. meas матрица содержит измерения цветов для 150 различных цветов. species переменная перечисляет виды для каждого цветка.
load fisheririsСоздание пользовательской функции classf (показано в конце этого примера). Эта функция соответствует дереву классификации учебным данным, а затем классифицирует тестовые данные. Используйте PCA внутри функции, чтобы уменьшить количество предикторов, используемых для создания древовидной модели.
Примечание.Если для этого примера используется файл сценария в реальном времени, classf функция уже включена в конец файла. В противном случае необходимо создать эту функцию в конце файла .m или добавить ее в качестве файла по пути MATLAB ®.
Создать cvpartition объект для стратифицированной пятикратной перекрестной проверки. По умолчанию cvpartition обеспечивает, чтобы учебные и тестовые наборы имели примерно одинаковые пропорции видов цветов.
rng('default') % For reproducibility cvp = cvpartition(species,'KFold',5);
Вычислите пятикратную ошибку ошибочной классификации перекрестной проверки для дерева классификации с данными предиктора meas и переменная ответа species.
cvError = crossval('mcr',meas,species,'Predfun',@classf,'Partition',cvp)
cvError = 0.1067
Этот код создает функцию classf.
function yfit = classf(Xtrain,ytrain,Xtest) % Standardize the training predictor data. Then, find the % principal components for the standardized training predictor % data. [Ztrain,Zmean,Zstd] = zscore(Xtrain); [coeff,scoreTrain,~,~,explained,mu] = pca(Ztrain); % Find the lowest number of principal components that account % for at least 95% of the variability. n = find(cumsum(explained)>=95,1); % Find the n principal component scores for the standardized % training predictor data. Train a classification tree model % using only these scores. scoreTrain95 = scoreTrain(:,1:n); mdl = fitctree(scoreTrain95,ytrain); % Find the n principal component scores for the transformed % test data. Classify the test data. Ztest = (Xtest-Zmean)./Zstd; scoreTest95 = (Ztest-mu)*coeff(:,1:n); yfit = predict(mdl,scoreTest95); end
Создайте матрицу путаницы из 10-кратных результатов перекрестной проверки дискриминантной модели анализа.
Примечание: Использовать classify когда скорость тренировки вызывает обеспокоенность. В противном случае используйте fitcdiscr для создания дискриминантной модели анализа. Для примера, показывающего тот же рабочий процесс, что и в этом примере, но использующего fitcdiscrсм. раздел Создание матрицы путаницы с помощью предсказаний перекрестной проверки.
Загрузить fisheriris набор данных. X содержит измерения цветов для 150 различных цветов, и y перечисляет виды для каждого цветка. Создание переменной order который определяет порядок видов цветов.
load fisheriris
X = meas;
y = species;
order = unique(y)order = 3x1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
Создать дескриптор функции с именем func для функции, которая выполняет следующие шаги:
Принять данные обучения (Xtrain и ytrain) и данные испытаний (Xtest и ytest).
Используйте обучающие данные для создания дискриминантной модели анализа, которая классифицирует новые данные (Xtest). Создайте эту модель и классифицируйте новые данные с помощью classify функция.
Сравните истинные классы тестовых данных (ytest) к прогнозируемым значениям тестовых данных и создайте матрицу путаницы результатов с помощью confusionmat функция. Укажите порядок классов с помощью 'Order',order.
func = @(Xtrain,ytrain,Xtest,ytest)confusionmat(ytest, ... classify(Xtest,Xtrain,ytrain),'Order',order);
Создать cvpartition объект для стратифицированной 10-кратной перекрестной проверки. По умолчанию cvpartition обеспечивает, чтобы учебные и тестовые наборы имели примерно одинаковые пропорции видов цветов.
rng('default') % For reproducibility cvp = cvpartition(y,'Kfold',10);
Вычислите 10 матриц путаницы тестового набора для каждого раздела данных предиктора X и переменная ответа y. Каждая строка confMat соответствует результатам матрицы путаницы для одного тестового набора. агрегировать результаты и создавать окончательную матрицу путаницы; cvMat.
confMat = crossval(func,X,y,'Partition',cvp);
cvMat = reshape(sum(confMat),3,3)cvMat = 3×3
50 0 0
0 48 2
0 1 49
Постройте график матрицы путаницы в виде таблицы матрицы путаницы с помощью confusionchart.
confusionchart(cvMat,order)

criterion - Тип оценки ошибки'mse' | 'mcr'Тип оценки ошибки, указанный как 'mse' или 'mcr'.
| Стоимость | Описание |
|---|---|
'mse' | Среднеквадратичная ошибка (MSE) - подходит только для алгоритмов регрессии |
'mcr' | Коэффициент неправильной классификации или доля неправильно классифицированных наблюдений - подходит только для алгоритмов классификации |
X - Набор данныхНабор данных, заданный как вектор столбца, матрица или массив. Строки X соответствуют наблюдениям и столбцам X обычно соответствуют переменным. При передаче нескольких наборов данных X1,...,XN кому crossval, то все наборы данных должны иметь одинаковое количество строк.
Типы данных: single | double | logical | char | string | cell | categorical
y - Данные ответаДанные ответа, указанные как вектор столбца или символьный массив. Строки y соответствуют наблюдениям, и y должно иметь то же количество строк, что и данные предиктора X или X1,...,XN.
Типы данных: single | double | logical | char | string | cell | categorical
predfun - Функция прогнозированияФункция прогнозирования, заданная как дескриптор функции. Вы должны создать эту функцию как анонимную функцию, функция, определенная в конце.m или .mlx файла, содержащего остальную часть Вашего кодекса или файла на пути MATLAB®.
Эта таблица описывает требуемый синтаксис функции, учитывая тип данных предиктора, передаваемых в crossval.
| Стоимость | Данные предиктора | Синтаксис функции |
|---|---|---|
@myfunction | X |
function yfit = myfunction(Xtrain,ytrain,Xtest) % Calculate predicted response ... end
|
@myfunction | X1,...,XN |
function yfit = myfunction(X1train,...,XNtrain,ytrain,X1test,...,XNtest) % Calculate predicted response ... end
|
Пример: @(Xtrain,ytrain,Xtest)(Xtest*regress(ytrain,Xtrain));
Типы данных: function_handle
fun - Функция для перекрестной проверкиФункция для перекрестной проверки, заданная как дескриптор функции. Вы должны создать эту функцию как анонимную функцию, функция, определенная в конце.m или .mlx файла, содержащего остальную часть Вашего кодекса или файла на пути MATLAB.
В этой таблице описывается синтаксис требуемой функции с учетом типа данных, передаваемых в crossval.
| Стоимость | Данные | Синтаксис функции |
|---|---|---|
@myfunction | X |
function value = myfunction(Xtrain,Xtest) % Calculation of value ... end
|
@myfunction | X1,...,XN |
function value = myfunction(X1train,...,XNtrain,X1test,...,XNtest) % Calculation of value ... end
|
Типы данных: function_handle
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
crossval('mcr',meas,species,'Predfun',@classf,'KFold',5,'Stratify',species) указывает на вычисление 5-кратного коэффициента неправильной классификации для стратифицированной перекрестной проверки classf функция с данными предиктора meas и переменная ответа species.'Holdout' - Доля или количество наблюдений, используемых для проверки удержания[] (по умолчанию) | скалярное значение в диапазоне (0,1) | положительное целое скалярноеДоля или количество наблюдений, используемых для проверки удержания, указанных как пара, разделенная запятыми, состоящая из 'Holdout' и скалярное значение в диапазоне (0,1) или положительное целое скалярное значение.
Если Holdout стоимость p является скаляром в диапазоне (0,1), то crossval случайным образом выбирает и резервирует приблизительно p*100% наблюдений в качестве тестовых данных.
Если Holdout стоимость p является положительным целым скаляром, то crossval случайным образом выбирает и резервирует p наблюдения в качестве данных испытаний.
В любом случае crossval затем обучает модель, указанную либо fun или predfun используя остальные данные. Наконец, функция использует тестовые данные вместе с обученной моделью для вычисления либо values или err.
Можно использовать только один из следующих четырех аргументов пары имя-значение: Holdout, KFold, Leaveout, и Partition.
Пример: 'Holdout',0.3
Пример: 'Holdout',50
Типы данных: single | double
'KFold' - Количество складок10 (по умолчанию) | положительный целочисленный скаляр больше 1Количество складок для k-кратной перекрестной проверки, указанное как пара, разделенная запятыми, состоящая из 'KFold' и положительный целочисленный скаляр больше 1.
При указании 'KFold',k, то crossval случайным образом разбивает данные на k наборы. Для каждого набора функция резервирует набор в качестве тестовых данных и обучает модель, заданную одним из fun или predfun использование другого k - 1 комплект. crossval затем использует тестовые данные вместе с обученной моделью для вычисления values или err.
Можно использовать только один из следующих четырех аргументов пары имя-значение: Holdout, KFold, Leaveout, и Partition.
Пример: 'KFold',5
Типы данных: single | double
'Leaveout' - Перекрестная проверка «оставить один»[] (по умолчанию) | 1Перекрестная проверка «оставить один», указанная как пара, разделенная запятыми, состоящая из 'Leaveout' и 1.
При указании 'Leaveout',1, то для каждого наблюдения, crossval резервирует наблюдение в качестве тестовых данных и обучает модель, указанную либо fun или predfun с использованием других наблюдений. Затем функция использует тестовое наблюдение вместе с обученной моделью для вычисления либо values или err.
Можно использовать только один из следующих четырех аргументов пары имя-значение: Holdout, KFold, Leaveout, и Partition.
Пример: 'Leaveout',1
Типы данных: single | double
'MCReps' - Количество повторений Монте-Карло1 (по умолчанию) | целочисленный скалярКоличество повторений Монте-Карло для проверки, указанное как пара, разделенная запятыми, состоящая из 'MCReps' и положительный целочисленный скаляр. Если первый вход crossval является 'mse' или 'mcr' (см. criterion), то crossval возвращает среднее значение MSE или коэффициент неправильной классификации для всех повторений Монте-Карло. В противном случае crossval объединяет значения из всех повторений Монте-Карло по первому измерению.
При указании обоих Partition и MCReps, то первое повторение Монте-Карло использует информацию раздела в cvpartition объект, и программное обеспечение вызывает repartition для создания новых разделов для каждого из оставшихся повторений.
Пример: 'MCReps',5
Типы данных: single | double
'Partition' - Раздел перекрестной проверки[] (по умолчанию) | cvpartition объект секционированияРаздел перекрестной проверки, указанный как разделенная запятыми пара, состоящая из 'Partition' и cvpartition объект секционирования, созданный cvpartition. Объект секционирования определяет тип перекрестной проверки и индексирования для обучающих и тестовых наборов.
При использовании crossval, нельзя указать оба Partition и Stratify. Вместо этого непосредственно укажите стратифицированный раздел при создании cvpartition объект секционирования.
Можно использовать только один из следующих четырех аргументов пары имя-значение: Holdout, KFold, Leaveout, и Partition.
'Stratify' - Переменные, определяющие группы, используемые для стратификацииПеременная, определяющая группы, используемые для стратификации, указанная как пара, разделенная запятыми, состоящая из 'Stratify' и вектор столбца с тем же количеством строк, что и данные X или X1,...,XN.
При указании Stratify, как учебные, так и тестовые наборы имеют примерно те же пропорции классов, что и в Stratify вектор. Программное обеспечение обрабатывает NaNs, пустые векторы символов, пустые строки, <missing> значения, и <undefined> значения в Stratify как отсутствующие значения данных, и игнорирует соответствующие строки данных.
Хорошей практикой является использование стратификации при использовании перекрестной проверки с алгоритмами классификации. В противном случае некоторые наборы тестов могут не включать наблюдения для всех классов.
При использовании crossval, нельзя указать оба Partition и Stratify. Вместо этого непосредственно укажите стратифицированный раздел при создании cvpartition объект секционирования.
Типы данных: single | double | logical | string | cell | categorical
'Options' - Варианты параллельного выполнения и настройки случайных потоковОпции параллельного выполнения вычислений и задания случайных потоков, заданные как структура. Создать Options структура с statset. В этой таблице перечислены поля опций и их значения.
| Имя поля | Стоимость | Дефолт |
|---|---|---|
UseParallel | Задайте для этого значения значение true для параллельного выполнения вычислений. | false |
UseSubstreams | Задайте для этого значения значение Для воспроизводимого вычисления установите | false |
Streams | Укажите это значение как RandStream объект или массив ячеек, состоящий из одного такого объекта. | Если не указать Streams, то crossval использует поток по умолчанию. |
Примечание
Для параллельного выполнения вычислений требуется Toolbox™ параллельных вычислений.
Пример: 'Options',statset('UseParallel',true)
Типы данных: struct
err - Средняя квадратичная ошибка или коэффициент неправильной классификацииСредняя квадратичная ошибка или частота неправильной классификации, возвращаемая как числовой скаляр. Тип ошибки зависит от criterion значение.
values - Значения потерьЗначения потерь, возвращаемые в виде вектора столбца или матрицы. Каждая строка values соответствует выходу fun для одного раздела обучающих и тестовых данных.
Если выходные данные возвращены fun является многомерным, то crossval изменяет форму выходного документа и помещает его в одну строку values. Пример см. в разделе Создание матрицы путаницы с помощью перекрестной проверки.
Хорошей практикой является использование стратификации (см. Stratify) при использовании перекрестной проверки с алгоритмами классификации. В противном случае некоторые наборы тестов могут не включать наблюдения для всех классов.
predfunПри использовании predfun, crossval функция обычно выполняет десятикратную перекрестную проверку следующим образом:
Разделить наблюдения в данных предиктора X и переменная ответа y на 10 групп, каждая из которых имеет примерно одинаковое количество наблюдений.
Используйте последние девять групп наблюдений для обучения модели, как указано в predfun. Используйте первую группу наблюдений в качестве данных теста, передайте данные предиктора теста обученной модели и вычислите прогнозируемые значения, как указано в predfun. Вычислить ошибку, указанную criterion.
Используйте первую группу и последние восемь групп наблюдений для обучения модели, как указано в predfun. Используйте вторую группу наблюдений в качестве тестовых данных, передайте тестовые данные обучаемой модели и вычислите прогнозируемые значения, как указано в predfun. Вычислить ошибку, указанную criterion.
Продолжайте аналогичным образом до тех пор, пока каждая группа наблюдений не будет использована в качестве тестовых данных ровно один раз.
Возвращает среднюю оценку ошибки в виде скаляра err.
funПри использовании fun, crossval функция обычно выполняет десятикратную перекрестную проверку следующим образом:
Разделить данные в X на 10 групп, каждая из которых имеет примерно одинаковое количество наблюдений.
Использовать последние девять групп данных для обучения модели, как указано в fun. Используйте первую группу данных в качестве тестового набора, передайте тестовый набор обучаемой модели и вычислите некоторое значение (например, потери), как указано в fun.
Используйте первую группу и последние восемь групп данных для обучения модели, как указано в fun. Используйте вторую группу данных как тестовый набор, передайте тестовый набор обучаемой модели и вычислите некоторое значение, как указано в fun.
Продолжайте аналогично до тех пор, пока каждая группа данных не будет использована в качестве тестового набора ровно один раз.
Возврат 10 вычисленных значений в качестве вектора values.
Многие функции классификации и регрессии позволяют выполнять перекрестную проверку напрямую.
При использовании функций посадки, таких как fitcsvm, fitctree, и fitrtree, можно указать параметры перекрестной проверки, используя аргументы пары имя-значение. Кроме того, можно сначала создать модели с этими функциями подгонки, а затем создать секционированный объект с помощью crossval объектная функция. Используйте kfoldLoss и kfoldPredict функции объекта для вычисления потерь и прогнозируемых значений для секционированного объекта. Дополнительные сведения см. в разделе ClassificationPartitionedModel и RegressionPartitionedModel.
Можно также указать параметры перекрестной проверки при выполнении лассо или эластичной регуляризации сетки с помощью lasso и lassoglm.
Для параллельного выполнения укажите 'Options' аргумент name-value в вызове этой функции и установка 'UseParallel' поле структуры опций для true использование statset.
Например: 'Options',statset('UseParallel',true)
Дополнительные сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
classify | confusionmat | cvpartition | kmeans | pca | regress
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.