Оцените потерю с помощью перекрестной проверки
возвращает 10-кратную ошибочную оценку перекрестной проверки для функционального err = crossval(criterion,X,y,'Predfun',predfun)predfun на основе заданного criterion, любой 'mse' (среднеквадратическая ошибка) или 'mcr' (misclassification уровень). Строки X и y соответствуйте наблюдениям и столбцам X соответствуйте переменным предикторам.
Для получения дополнительной информации смотрите Общие Шаги Перекрестной проверки для predfun.
выполняет 10-кратную перекрестную проверку для функционального values = crossval(fun,X)fun, примененный данные в X. Строки X соответствуйте наблюдениям и столбцам X соответствуйте переменным.
Для получения дополнительной информации смотрите Общие Шаги Перекрестной проверки для fun.
___ = crossval(___, задает опции перекрестной проверки с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к любой из комбинаций входных аргументов и выходных аргументов в предыдущих синтаксисах. Например, Name,Value)'KFold',5 задает, чтобы выполнить 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 (показанный в конце этого примера). Эта функция подбирает модель регрессии к обучающим данным и затем вычисляет ожидаемые значения на наборе тестов.
Примечание: Если вы используете файл live скрипта для этого примера, 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
Вычислите misclassification ошибку модели логистической регрессии, обученной на числовых и категориальных данных о предикторе при помощи 10-кратной перекрестной проверки.
Загрузите patients набор данных. Задайте числовые переменные Diastolic и Systolic и категориальная переменная Gender как предикторы, и задают Smoker как переменная отклика.
load patients
X1 = Diastolic;
X2 = categorical(Gender);
X3 = Systolic;
y = Smoker;Создайте пользовательский функциональный classf (показанный в конце этого примера). Эта функция подбирает модель логистической регрессии к обучающим данным и затем классифицирует тестовые данные.
Примечание: Если вы используете файл live скрипта для этого примера, classf функция уже включена в конце файла. В противном случае необходимо создать эту функцию в конце.m файла или добавить его как файл на пути MATLAB®.
Вычислите 10-кратную перекрестную проверку misclassification ошибка для модели с данными о предикторе X1x2 , и 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 кластеры.
Преобразуйте тестовые данные с помощью обучающих данных среднее и стандартное отклонение.
Вычислите расстояние от каждого, тестовые данные указывают на самый близкий кластерный центр или центроид.
Вычислите сумму квадратов расстояний.
Примечание: Если вы используете файл live скрипта для этого примера, 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, настроенный к области значений автомобильных весов набора тестов.
Примечание: Если вы используете файл live скрипта для этого примера, regf функция уже включена в конце файла. В противном случае необходимо создать эту функцию в конце.m файла или добавить его как файл на пути MATLAB®.
По умолчанию, crossval выполняет 10-кратную перекрестную проверку. Для каждого из 10 разделов набора обучающих данных и набора тестов данных в X1x2 , и 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
Вычислите misclassification ошибку дерева классификации при помощи анализа главных компонентов (PCA) и 5-кратной перекрестной проверки.
Загрузите fisheriris набор данных. meas матрица содержит цветочные измерения для 150 различных цветов. species списки переменных разновидности для каждого цветка.
load fisheririsСоздайте пользовательский функциональный classf (показанный в конце этого примера). Эта функция соответствует дереву классификации к обучающим данным и затем классифицирует тестовые данные. Используйте PCA в функции, чтобы сократить количество предикторов, используемых, чтобы создать древовидную модель.
Примечание: Если вы используете файл live скрипта для этого примера, classf функция уже включена в конце файла. В противном случае необходимо создать эту функцию в конце.m файла или добавить его как файл на пути MATLAB®.
Создайте cvpartition объект для стратифицированной 5-кратной перекрестной проверки. По умолчанию, cvpartition гарантирует, что наборы обучающих данных и наборы тестов имеют примерно те же пропорции цветочных разновидностей.
rng('default') % For reproducibility cvp = cvpartition(species,'KFold',5);
Вычислите 5-кратную перекрестную проверку misclassification ошибка для дерева классификации с данными о предикторе 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' | Уровень Misclassification или пропорция неправильно классифицированных наблюдений — Подходящий для алгоритмов классификации только |
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® path.
Эта таблица описывает необходимый синтаксис функций, учитывая тип данных о предикторе, переданных 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-кратную перекрестную проверку misclassification уровень для 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 — Количество сгибов (значение по умолчанию) | положительный целочисленный скаляр, больше, чем 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 — Количество повторений Монте-Карло (значение по умолчанию) | положительный целочисленный скалярКоличество повторений Монте-Карло для валидации в виде разделенной запятой пары, состоящей из 'MCReps' и положительный целочисленный скаляр. Если первый вход crossval 'mse' или 'mcr' (см. criterionто crossval возвращает средний MSE или misclassification уровень через все повторения Монте-Карло. В противном случае, 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 | Задайте это значение как a RandStream возразите или массив ячеек, состоящий из одного такого объекта. | Если вы не задаете Streamsто crossval использует поток по умолчанию. |
Примечание
Вам нужен Parallel Computing Toolbox™, чтобы запустить расчеты параллельно.
Пример: 'Options',statset('UseParallel',true)
Типы данных: struct
err — Среднеквадратическая ошибка или misclassification уровеньСреднеквадратическая ошибка или misclassification уровень, возвращенный в виде числа. Тип ошибки зависит от criterion значение.
values — Значения потерьЗначения потерь, возвращенные как вектор-столбец или матрица. Каждая строка values соответствует выходу fun для одного раздела обучения и тестовых данных.
Если выходной параметр, возвращенный fun многомерно, затем crossval изменяет выход и вмещает его в одну строку values. Для примера смотрите, Создают Матрицу Беспорядка Используя Перекрестную проверку.
Хорошая практика должна использовать стратификацию (см. Stratify) когда вы используете перекрестную проверку с алгоритмами классификации. В противном случае некоторые наборы тестов не могут включать наблюдения для всех классов.
predfunКогда вы используете predfun, crossval функция обычно выполняет 10-кратную перекрестную проверку можно следующим образом:
Разделите наблюдения в данных о предикторе X и переменная отклика y в 10 групп, каждая из которых имеет приблизительно то же количество наблюдений.
Используйте последние девять групп наблюдений, которые обучат модель, как задано в predfun. Используйте первую группу наблюдений как тестовые данные, передайте тестовые данные о предикторе обученной модели и вычислите ожидаемые значения, как задано в predfun. Вычислите ошибку, заданную criterion.
Используйте первую группу и последние восемь групп наблюдений, которые обучат модель, как задано в predfun. Используйте вторую группу наблюдений как тестовые данные, передайте тестовые данные обученной модели и вычислите ожидаемые значения, как задано в predfun. Вычислите ошибку, заданную criterion.
Продолжите подобным образом, пока каждая группа наблюдений не будет использоваться в качестве тестовых данных точно однажды.
Возвратите оценку средней погрешности как скалярный err.
funКогда вы используете fun, crossval функция обычно выполняет 10-кратную перекрестную проверку можно следующим образом:
Разделите данные в X в 10 групп, каждая из которых имеет приблизительно то же количество наблюдений.
Используйте последние девять групп данных, которые обучат модель, как задано в fun. Используйте первую группу данных как набор тестов, передайте набор тестов обученной модели и вычислите некоторое значение (например, потеря), как задано в fun.
Используйте первую группу и последние восемь групп данных, которые обучат модель, как задано в fun. Используйте вторую группу данных как набор тестов, передайте набор тестов обученной модели и вычислите некоторое значение, как задано в fun.
Продолжите подобным образом, пока каждая группа данных не будет использоваться в качестве набора тестов точно однажды.
Возвратите 10 вычисленных значений как векторный values.
Многие классификация и функции регрессии позволяют вам выполнять перекрестную проверку непосредственно.
То, когда вы используете подгонку, функционирует такой как fitcsvm, fitctree, и fitrtree, можно задать опции перекрестной проверки при помощи аргументов пары "имя-значение". В качестве альтернативы можно сначала создать модели с этими подходящими функциями и затем создать разделенный объект при помощи crossval объектная функция. Используйте kfoldLoss и kfoldPredict возразите функциям, чтобы вычислить потерю и ожидаемые значения для разделенного объекта. Для получения дополнительной информации смотрите ClassificationPartitionedModel и RegressionPartitionedModel.
Можно также задать опции перекрестной проверки, когда вы выполняете лассо или эластичное сетевое использование регуляризации lasso и lassoglm.
Чтобы запуститься параллельно, задайте 'Options' аргумент значения имени в вызове этой функции и набора 'UseParallel' поле структуры опций к true использование statset.
Например: 'Options',statset('UseParallel',true)
Для получения дополнительной информации о параллельных вычислениях, смотрите функции MATLAB Запуска с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
cvpartition | pca | regress | classify | kmeans | confusionmat
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.