Сгенерируйте индексы перекрестной проверки
[
возвращает логические векторы train
,test
] = crossvalind(cvMethod
,N
,M
)train
и test
, представление наблюдений, которые принадлежат набору обучающих данных и тесту (оценка) набор, соответственно. Можно задать любой поддерживаемый метод перекрестной проверки кроме 'Kfold'
, который принимает скалярный выход только.
___ = crossvalind(___,
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к аргументам в предыдущих синтаксисах. Например, Name,Value
)cvIndices = crossvalind('Kfold',Groups,10,'Class',{'Cancer','Control'})
задает, чтобы использовать наблюдения от Cancer
и Control
группы при генерации индексов с помощью 10-кратной перекрестной проверки.
Создайте индексы для 10-кратной перекрестной проверки и классифицируйте данные об измерении для ирисового набора данных Фишера. Ирисовый набор данных Фишера содержит измерения ширины и длины лепестков и чашелистиков от трех разновидностей ирисовых диафрагм.
Загрузите набор данных.
load fisheriris
Создайте индексы для 10-кратной перекрестной проверки.
indices = crossvalind('Kfold',species,10);
Инициализируйте объект измерить уровень классификатора.
cp = classperf(species);
Выполните классификацию с помощью данных об измерении и сообщите о коэффициенте ошибок, который является отношением количества неправильно классифицированных выборок, разделенных на общее количество классифицированных выборок.
for i = 1:10 test = (indices == i); train = ~test; class = classify(meas(test,:),meas(train,:),species(train,:)); classperf(cp,class,test); end cp.ErrorRate
ans = 0.0200
Предположим, что вы хотите использовать данные о наблюдении из setosa
и virginica
разновидности только и исключают versicolor
разновидности от перекрестной проверки.
labels = {'setosa','virginica'}; indices = crossvalind('Kfold',species,10,'Classes',labels);
indices
теперь содержит нули для строк, которые принадлежат versicolor
разновидности.
Выполните классификацию снова.
for i = 1:10 test = (indices == i); train = ~test; class = classify(meas(test,:),meas(train,:),species(train,:)); classperf(cp,class,test); end cp.ErrorRate
ans = 0.0160
Загрузите carbig набор данных.
load carbig;
x = Displacement;
y = Acceleration;
N = length(x);
Обучайтесь вторая модель полинома степени с перекрестной проверкой "пропускают один" и оценивают усредненную ошибку перекрестной проверки.
sse = 0; % Initialize the sum of squared error. for i = 1:100 [train,test] = crossvalind('LeaveMOut',N,1); yhat = polyval(polyfit(x(train),y(train),2),x(test)); sse = sse + sum((yhat - y(test)).^2); end CVerr = sse / 100
CVerr = 3.5310
cvMethod
— Метод перекрестной проверкиМетод перекрестной проверки, заданный как вектор символов или строка.
Эта таблица описывает допустимые методы перекрестной проверки. В зависимости от метода, третий входной параметр (M
) имеет различные значения и требования.
cvMethod | M | Описание |
---|---|---|
|
| Метод использует K - перекрестная проверка сгиба, чтобы сгенерировать индексы. Этот метод использует |
|
| Метод случайным образом выбирает приблизительно |
|
| Метод случайным образом выбирает |
|
| Метод случайным образом выбирает
|
Пример: 'Kfold'
Типы данных: char |
string
N
— Общее количество наблюдений или группирующейся информацииОбщее количество наблюдений или группирующейся информации, указанной как положительное целое число, вектор положительных целых чисел, логический вектор или массив ячеек из символьных векторов.
N
может быть положительное целое число, задающее общее количество выборок в вашем наборе данных, например.
N
может также быть вектор положительных целых чисел или логических значений или массива ячеек из символьных векторов, содержа группирующуюся информацию или метки для ваших выборок. Раздел групп зависит от типа перекрестной проверки. Для 'Kfold'
, каждая группа разделена на M
подмножества, приблизительно равняйтесь в размере. Для всех других методов приблизительно равные количества наблюдений от каждой группы выбраны для оценки (тест) набор. Набор обучающих данных содержит по крайней мере одно наблюдение от каждой группы независимо от метода перекрестной проверки, который вы используете.
Пример: 100
Типы данных: double |
cell
M
— Параметр перекрестной проверкиПараметр перекрестной проверки, заданный как положительная скалярная величина между 0 и 1, положительное целое число или двухэлементный вектор. В зависимости от метода перекрестной проверки, требований для M
отличаться. Для получения дополнительной информации смотрите cvMethod
.
Пример 5
Типы данных: double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
[train,test] = crossvalind('LeaveMOut',groups,1,'Min',3)
задает, чтобы иметь по крайней мере три наблюдения в каждой группе в наборе обучающих данных, когда выполнение перекрестной проверки "пропускает один".'Classes'
— Класс или информация о группеКласс или информация группы, указанная как разделенная запятой пара, состоящая из 'Classes'
и вектор положительных целых чисел, вектора символов, строки, представляет в виде строки вектор или массив ячеек из символьных векторов. Эта опция позволяет вам ограничить наблюдения только заданными группами.
Этот аргумент пары "имя-значение" применим только, когда вы задаете N
как сгруппированная переменная. Тип данных 'Classes'
должен совпадать с тем из N
. Например, если вы задаете N
как массив ячеек из символьных векторов, содержащий метки класса, необходимо использовать массив ячеек из символьных векторов, чтобы задать 'Classes'
. Выходные аргументы, которые вы задаете, содержат значение 0
для наблюдений, принадлежащих исключенным классам.
Пример: 'Classes',{'Cancer','Control'}
Типы данных: double |
cell
'Min'
— Минимальное количество наблюдений
(значение по умолчанию) | положительное целое числоМинимальное количество наблюдений для каждой группы в наборе обучающих данных, заданном как разделенная запятой пара, состоящая из 'Min'
и положительное целое число. Устанавливание большого значения может помочь сбалансировать учебные группы, но вызывает частичную перезамену, когда существует недостаточно наблюдений.
Этот аргумент пары "имя-значение" не применим для 'Kfold'
метод.
Пример: 'Min',3
Типы данных: double
cvIndices
— Индексы перекрестной проверкиИндексы перекрестной проверки, возвращенные как вектор.
Если вы используете 'Kfold'
как метод перекрестной проверки, cvIndices
содержит равный (или приблизительно равняйтесь), пропорции целых чисел 1 через M
, которые задают раздел N
наблюдения в M
разделенные подмножества.
Для других методов перекрестной проверки, cvIndices
логический вектор, содержащий 1 с для наблюдений, которые принадлежат набору обучающих данных и 0s для наблюдений, которые принадлежат тесту (оценка) набор.
train
— Набор обучающих данныхНабор обучающих данных, возвращенный как логический вектор. Этот аргумент задает, какие наблюдения принадлежат набору обучающих данных.
test
— Набор тестовНабор тестов, возвращенный как логический вектор. Этот аргумент задает, какие наблюдения принадлежат набору тестов.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.