Перекрестный подтвердите модель выходных кодов с коррекцией ошибок (ECOC) мультикласса
CVMdl = crossval(Mdl)
CVMdl = crossval(Mdl,Name,Value)
возвращает перекрестную подтвержденную (разделенную) модель выходных кодов с коррекцией ошибок (ECOC) мультикласса (CVMdl
= crossval(Mdl
)CVMdl
) в обученную модель ECOC (Mdl
). По умолчанию crossval
использует 10-кратную перекрестную проверку на данных тренировки, чтобы создать CVMdl
, модель ClassificationPartitionedECOC
.
возвращает разделенную модель ECOC с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, можно задать количество сгибов или демонстрационной пропорции затяжки.CVMdl
= crossval(Mdl
,Name,Value
)
Перекрестный подтвердите классификатор ECOC с бинарными учениками SVM и оцените обобщенную ошибку классификации.
Загрузите ирисовый набор данных Фишера. Задайте данные о предикторе X
и данные об ответе Y
.
load fisheriris X = meas; Y = species; rng(1); % For reproducibility
Создайте шаблон SVM и стандартизируйте предикторы.
t = templateSVM('Standardize',true)
t = Fit template for classification SVM. Alpha: [0x1 double] BoxConstraint: [] CacheSize: [] CachingMethod: '' ClipAlphas: [] DeltaGradientTolerance: [] Epsilon: [] GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction: '' KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint: [] Nu: [] OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod: [] Solver: '' StandardizeData: 1 SaveSupportVectors: [] VerbosityLevel: [] Version: 2 Method: 'SVM' Type: 'classification'
t
является шаблоном SVM. Большинство свойств объекта шаблона пусто. Когда обучение классификатор ECOC, программное обеспечение устанавливает применимые свойства на их значения по умолчанию.
Обучите классификатор ECOC и задайте порядок класса.
Mdl = fitcecoc(X,Y,'Learners',t,... 'ClassNames',{'setosa','versicolor','virginica'});
Mdl
является классификатором ClassificationECOC
. Можно получить доступ к его свойствам с помощью записи через точку.
Перекрестный подтвердите Mdl
с помощью 10-кратной перекрестной проверки.
CVMdl = crossval(Mdl);
CVMdl
является ClassificationPartitionedECOC
перекрестный подтвержденный классификатор ECOC.
Оцените обобщенную ошибку классификации.
genError = kfoldLoss(CVMdl)
genError = 0.0400
Обобщенная ошибка классификации составляет 4%, который указывает, что классификатор ECOC делает вывод довольно хорошо.
Этот пример использование:
Рассмотрите набор данных arrhythmia
. Этот набор данных содержит 16 классов, 13 из которых представлены в данных. Первый класс указывает, что предмет не имеет аритмии, и последний класс указывает, что состояние аритмии предмета не зарегистрировано. Другие классы являются порядковыми уровнями, указывающими на серьезность аритмии.
Обучите классификатор ECOC с пользовательским проектом кодирования, заданным описанием классов.
Загрузите набор данных arrhythmia
. Преобразуйте Y
в переменную categorical
и определите количество классов.
load arrhythmia Y = categorical(Y); K = unique(Y); % Number of distinct classes
Создайте матрицу кодирования, которая описывает природу классов.
OrdMat = designecoc(11,'ordinal'); nOrdMat = size(OrdMat); class1VSOrd = [1; -ones(11,1); 0]; class1VSClass16 = [1; zeros(11,1); -1]; OrdVSClass16 = [0; ones(11,1); -1]; Coding = [class1VSOrd class1VSClass16 OrdVSClass16,... [zeros(1,nOrdMat(2)); OrdMat; zeros(1,nOrdMat(2))]];
Обучите классификатор ECOC с помощью пользовательского проекта кодирования (Coding
) и параллельные вычисления. Укажите, что ансамбль 50 деревьев классификации повысил использование GentleBoost.
t = templateEnsemble('GentleBoost',50,'Tree'); options = statset('UseParallel',true); Mdl = fitcecoc(X,Y,'Coding',Coding,'Learners',t,'Options',options);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).
Mdl
является моделью ClassificationECOC
. Можно получить доступ к его свойствам с помощью записи через точку.
Перекрестный подтвердите Mdl
с помощью 8-кратной перекрестной проверки и параллельных вычислений.
rng(1); % For reproducibility CVMdl = crossval(Mdl,'Options',options,'KFold',8);
Warning: One or more folds do not contain points from all the groups.
Поскольку некоторые классы имеют низкую относительную частоту, некоторые сгибы не обучают наблюдения использования от тех классов. CVMdl
является ClassificationPartitionedECOC
перекрестная подтвержденная модель ECOC.
Оцените параллельные вычисления ошибки обобщения.
error = kfoldLoss(CVMdl,'Options',options)
error = 0.3208
Перекрестная подтвержденная ошибка классификации составляет 32%, который указывает, что эта модель не делает вывод хорошо. Чтобы улучшить модель, попробуйте обучение с помощью различного повышающего метода, такого как RobustBoost или различный алгоритм, такой как SVM.
Mdl
— Полный, обученный мультикласс модель ECOCClassificationECOC
Полный, обученный мультикласс модель ECOC, заданная как модель ClassificationECOC
, обученная с fitcecoc
.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
crossval(Mdl,'KFold',3)
задает использование трех сгибов в перекрестной подтвержденной модели.'CVPartition'
— Раздел перекрестной проверки[]
(значение по умолчанию) | объект раздела cvpartition
Раздел перекрестной проверки, заданный как пара, разделенная запятой, состоящая из 'CVPartition'
и объекта раздела cvpartition
, создается cvpartition
. Объект раздела задает тип перекрестной проверки и индексации для наборов обучения и валидации.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition
, Holdout
, KFold
или Leaveout
.
Пример: Предположим, что вы создаете случайный раздел для 5-кратной перекрестной проверки на 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5)
. Затем можно задать перекрестную подтвержденную модель при помощи 'CVPartition',cvp
.
'Holdout'
— Часть данных для валидации затяжкиЧасть данных используется для валидации затяжки, заданной как пара, разделенная запятой, состоящая из 'Holdout'
и скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p
, то программное обеспечение завершает эти шаги:
Случайным образом выберите и зарезервируйте % p*100
данных как данные о валидации и обучите модель с помощью остальной части данных.
Сохраните компактную, обученную модель в свойстве Trained
перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition
, Holdout
, KFold
или Leaveout
.
Пример: 'Holdout',0.1
Типы данных: double | single
'KFold'
— Количество сгибов10
(значение по умолчанию) | положительное целочисленное значение, больше, чем 1Количество сгибов, чтобы использовать в перекрестной подтвержденной модели, заданной как пара, разделенная запятой, состоящая из 'KFold'
и положительного целочисленного значения, больше, чем 1. Если вы задаете 'KFold',k
, то программное обеспечение завершает эти шаги:
Случайным образом разделите данные в наборы k
.
Для каждого набора зарезервируйте набор как данные о валидации и обучите модель с помощью другого k
– 1 набор.
Сохраните k
компактные, обученные модели в ячейках k
-by-1 вектор ячейки в свойстве Trained
перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition
, Holdout
, KFold
или Leaveout
.
Пример: 'KFold',5
Типы данных: single | double
'Leaveout'
— Флаг перекрестной проверки "Пропускает один"'off'
(значение по умолчанию) | 'on'
Флаг перекрестной проверки "Пропускает один", заданный как пара, разделенная запятой, состоящая из 'Leaveout'
и 'on'
или 'off'
. Если вы задаете 'Leaveout','on'
, то, для каждого из наблюдений n (где n является количеством наблюдений, исключая недостающие наблюдения, заданные в свойстве NumObservations
модели), программное обеспечение завершает эти шаги:
Зарезервируйте наблюдение как данные о валидации и обучите модель с помощью другого n – 1 наблюдение.
Сохраните n компактные, обученные модели в ячейках n-by-1 вектор ячейки в свойстве Trained
перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition
, Holdout
, KFold
или Leaveout
.
Пример: 'Leaveout','on'
Опции
Опции оценки[]
(значение по умолчанию) | массив структур, возвращенный statset
Опции оценки, заданные как пара, разделенная запятой, состоящая из 'Options'
и массива структур, возвращенного statset
.
Вызвать параллельные вычисления:
Вам нужна лицензия Parallel Computing Toolbox™.
Задайте 'Options',statset('UseParallel',true)
.
Вместо обучения модель ECOC и затем перекрестная проверка его, можно создать перекрестную подтвержденную модель ECOC непосредственно при помощи fitcecoc
и определения одного из этих аргументов пары "имя-значение": 'CrossVal'
, 'CVPartition'
, 'Holdout'
, 'Leaveout'
или 'KFold'
.
Чтобы запуститься параллельно, установите опцию 'UseParallel'
на true
.
Установите поле 'UseParallel'
структуры опций к true
с помощью statset
и задайте аргумент пары "имя-значение" 'Options'
в вызове этой функции.
Например: 'Options',statset('UseParallel',true)
Для получения дополнительной информации смотрите аргумент пары "имя-значение" 'Options'
.
Для более общей информации о параллельных вычислениях смотрите функции MATLAB Выполнения с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
ClassificationECOC
| ClassificationPartitionedECOC
| CompactClassificationECOC
| cvpartition
| fitcecoc
| statset
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.