Исправление ошибок выхода обучающегося выходного кода
возвращает шаблон учащегося классификации кодов выхода с исправлением ошибок (ECOC).t
= templateECOC()
Если вы задаете шаблон по умолчанию, то во время обучения программное обеспечение использует значения по умолчанию для всех входных параметров.
возвращает шаблон с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".t
= templateECOC(Name,Value
)
Для примера можно задать проект кодирования, соответствовать ли апостериорным вероятностям или типам двоичных учащихся.
Если вы отображаете t
в Командном окне, затем все опции появляются пустыми ([]
), кроме тех, которые вы задаете используя аргументы пары "имя-значение". Во время обучения программа использует значения по умолчанию для пустых опций.
Использование templateECOC
для создания шаблона ECOC по умолчанию.
t = templateECOC()
t = Fit template for classification ECOC. BinaryLearners: '' Coding: '' FitPosterior: [] Options: [] VerbosityLevel: [] NumConcurrent: [] Version: 1 Method: 'ECOC' Type: 'classification'
Все свойства объекта шаблона пусты, кроме Method
и Type
. Когда ты проходишь t
на testckfold
программа заполняет пустые свойства соответствующими значениями по умолчанию. Например, программное обеспечение заполняет BinaryLearners
свойство с 'SVM'
. Для получения дополнительной информации о других значениях по умолчанию смотрите fitcecoc
.
t
является планом для учащегося ECOC. Когда вы создаете его, расчет не происходит. Можно пройти t
на testckfold
для определения плана для модели классификации ECOC для статистического сравнения с другой моделью.
Один из способов выбрать предикторы или функции - обучить две модели, где одна, которая использует подмножество предикторов, которые обучили другую. Статистически сравните прогнозирующие характеристики моделей. Если есть достаточные доказательства того, что модель, обученная на меньшем количестве предикторов, работает лучше, чем модель, обученная с использованием большего количества предикторов, то можно продолжить с более эффективной моделью.
Загрузите набор данных радужки Фишера. Постройте график всех 2-мерных комбинаций предикторов.
load fisheriris d = size(meas,2); % Number of predictors pairs = nchoosek(1:d,2)
pairs = 6×2
1 2
1 3
1 4
2 3
2 4
3 4
for j = 1:size(pairs,1) subplot(3,2,j) gscatter(meas(:,pairs(j,1)),meas(:,pairs(j,2)),species) xlabel(sprintf('meas(:,%d)',pairs(j,1))) ylabel(sprintf('meas(:,%d)',pairs(j,2))) legend off end
На основе scatterplot, meas(:,3)
и meas(:,4)
похоже, они хорошо разделяют группы.
Создайте шаблон ECOC. Задайте, чтобы использовать проект кодирования один от всех.
t = templateECOC('Coding','onevsall');
По умолчанию в модели ECOC используются линейные двоичные ученики SVM. Можно выбрать другие поддерживаемые алгоритмы, указав их с помощью 'Learners'
аргумент пары "имя-значение".
Проверьте, выполняет ли модель ECOC, которая только что обучена с использованием предикторов 3 и 4, самое большее, а также модель ECOC, которая обучена с использованием всех предикторов. Отклонение этой нулевой гипотезы означает, что модель ECOC, обученная с использованием предикторов 3 и 4, работает лучше, чем модель ECOC, обученная с использованием всех предикторов. Предположим представляет классификационную ошибку модели ECOC, обученную с использованием предикторов 3 и 4 и представляет ошибку классификации модели ECOC, обученную с использованием всех предикторов, затем тест следующий:
По умолчанию testckfold
проводит тест F 5 на 2 k-fold, который не подходит в качестве однохвостого теста. Задайте, чтобы провести тест 5 на 2 k-fold t.
rng(1); % For reproducibility [h,pValue] = testckfold(t,t,meas(:,pairs(6,:)),meas,species,... 'Alternative','greater','Test','5x2t')
h = logical
0
pValue = 0.8940
The h = 0
указывает, что недостаточно доказательств, чтобы предположить, что модель, обученная с использованием предикторов 3 и 4, более точна, чем модель, обученная с использованием всех предикторов.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Coding','ternarycomplete','FitPosterior',true,'Learners','tree'
задает тройной проект полного кодирования, для преобразования счетов в апостериорные вероятности и для роста деревьев классификации для всех двоичных учащихся.'Coding'
- Проект кодирования'onevsone'
(по умолчанию) | 'allpairs'
| 'binarycomplete'
| 'denserandom'
| 'onevsall'
| 'ordinal'
| 'sparserandom'
| 'ternarycomplete'
| числовую матрицуИмя проекта кодирования, заданное как разделенная разделенными запятой парами, состоящая из 'Coding'
и числовую матрицу или значение в этой таблице.
Значение | Количество двоичных учащихся | Описание |
---|---|---|
'allpairs' и 'onevsone' | K (K – 1)/2 | Для каждого двоичного ученика один класс положителен, другой отрицателен, и программное обеспечение игнорирует восстановление. Этот проект исчерпывает все комбинации присвоений пар классов. |
'binarycomplete' | Этот проект разбивает классы на все двоичные комбинации и не игнорирует никакие классы. Для каждого двоичного ученика все назначения классов -1 и 1 с по крайней мере одним положительным и отрицательным классом в присвоении. | |
'denserandom' | Случайный, но приблизительно 10 лог2 K | Для каждого двоичного ученика программа случайным образом назначает классы в положительные или отрицательные классы с по крайней мере одним из каждого типа. Для получения дополнительной информации смотрите Random Coding Design Matrices. |
'onevsall' | K | Для каждого двоичного ученика один класс положителен, а остальные отрицательны. Этот проект исчерпывает все комбинации положительных присвоений классов. |
'ordinal' | K – 1 | Для первого двоичного ученика первый класс отрицателен, а остальное положительно. Для второго двоичного ученика первые два класса отрицательны, остальные положительны и так далее. |
'sparserandom' | Случайный, но приблизительно 15 лог2 K | Для каждого двоичного ученика программа случайным образом присваивает классы как положительные или отрицательные с вероятностью 0,25 для каждого и игнорирует классы с вероятностью 0,5. Для получения дополнительной информации смотрите Random Coding Design Matrices. |
'ternarycomplete' | Этот проект разделяет классы на все троичные комбинации. Все назначения классов 0 , -1 , и 1 с по крайней мере одним положительным и одним отрицательным классом в присвоении. |
Можно также задать проект кодирования с помощью пользовательской матрицы кодирования. Пользовательская матрица кодирования является K -by - L матрицей. Каждая строка соответствует классу, и каждый столбец соответствует двоичному ученику. Порядок классов (строки) соответствует порядку в ClassNames
. Составьте матрицу, следуя этим рекомендациям:
Каждый элемент пользовательской матрицы кодирования должен быть -1
, 0
, или 1
, и значение должно соответствовать присвоению дихотомического класса. В этой таблице описывается значение Coding(i,j)
, то есть класс, который обучается j
присваивает наблюдениям в i
классов.
Значение | Присвоение дихотомических классов |
---|---|
–1 | Обучающиеся j присваивает наблюдения в i классов в отрицательный класс. |
0 | Перед обучением учащийся j удаляет наблюдения в i классов из набора данных. |
1 | Обучающиеся j присваивает наблюдения в i классов в положительный класс. |
Каждый столбец должен содержать по крайней мере один -1
или 1
.
Для всех индексов столбцов i
, j
таким образом i
≠ j
, Coding(:,i)
не может равняться Coding(:,j)
и Coding(:,i)
не может равняться -Coding(:,j)
.
Все строки пользовательской матрицы кодирования должны быть различными.
Для получения дополнительной информации о форме пользовательских матриц проекта кодирования, см. Custom Coding Design Matrices.
Пример: 'Coding','ternarycomplete'
Типы данных: char
| string
| double
| single
| int16
| int32
| int64
| int8
'FitPosterior'
- Флаг, указывающий, преобразовывать ли счета в апостериорные вероятностиfalse
или 0
(по умолчанию) | true
или 1
Флаг, указывающий, преобразовать ли счета в апостериорные вероятности, заданный как разделенная разделенными запятой парами, состоящая из 'FitPosterior'
и a true
(1
) или false
(0
).
Если FitPosterior
является true
затем программное обеспечение преобразует классификационные оценки двоичных учащихся в апостериорные вероятности. Можно получить апостериорные вероятности при помощи kfoldPredict
, predict
, или resubPredict
.
fitcecoc
не поддерживает аппроксимацию апостериорных вероятностей, если:
Метод ансамбля AdaBoostM2
, LPBoost
, RUSBoost
, RobustBoost
, или TotalBoost
.
Двоичные ученики (Learners
) являются линейными или ядерными классификационными моделями, которые реализуют SVM. Чтобы получить апостериорные вероятности для линейных или ядерные модели классификации, реализуйте вместо этого логистическую регрессию.
Пример: 'FitPosterior',true
Типы данных: logical
'Learners'
- Двоичные шаблоны учащихся'svm'
(по умолчанию) | 'discriminant'
| 'kernel'
| 'knn'
| 'linear'
| 'naivebayes'
| 'tree'
| объект шаблона | вектор камер объектов шаблонаДвоичные шаблоны учащихся, заданные как разделенная разделенными запятой парами, состоящая из 'Learners'
и вектор символов, строковый скаляр, объект шаблона или вектор камер объектов шаблона. В частности, можно задать двоичные классификаторы, такие как SVM, и ансамбли, которые используют GentleBoost
, LogitBoost
, и RobustBoost
, для решения многоклассовых задач. Однако fitcecoc
также поддерживает многоклассовые модели в качестве двоичных классификаторов.
Если Learners
является вектором символов или строковым скаляром, затем программное обеспечение обучает каждого двоичного ученика, используя значения по умолчанию заданного алгоритма. В этой таблице представлены доступные алгоритмы.
Значение | Описание |
---|---|
'discriminant' | Дискриминантный анализ. Для опций по умолчанию см. templateDiscriminant . |
'kernel' | Классификационная модель ядра. Для опций по умолчанию см. templateKernel . |
'knn' | k - ближайшие соседи. Для опций по умолчанию см. templateKNN . |
'linear' | Линейная классификационная модель. Для опций по умолчанию см. templateLinear . |
'naivebayes' | Наивный Бейес. Для опций по умолчанию см. templateNaiveBayes . |
'svm' | SVM. Для опций по умолчанию см. templateSVM . |
'tree' | Деревья классификации. Для опций по умолчанию см. templateTree . |
Если Learners
является объектом шаблона, затем каждый двоичный ученик обучается в соответствии с сохраненными опциями. Можно создать объект шаблона с помощью:
templateDiscriminant
, для дискриминантного анализа.
templateEnsemble
, для обучения ансамбля. Необходимо как минимум задать метод обучения (Method
), количество учащихся (NLearn
), и тип обучающегося (Learners
). Вы не можете использовать AdaBoostM2
ансамблевый метод двоичного обучения.
templateKernel
, для классификации ядра.
templateKNN
для k - ближайших соседей.
templateLinear
, для линейной классификации.
templateNaiveBayes
для наивного Бейеса.
templateSVM
, для SVM.
templateTree
, для деревьев классификации.
Если Learners
является вектором камер объектов шаблона, затем:
j камеры соответствует двоичным j обучающегося (другими словами, j столбца матрицы проекта кодирования), и вектор камеры должен иметь L длины. L - количество столбцов в матрице проекта кодирования. Для получения дополнительной информации смотрите Coding
.
Чтобы использовать одну из встроенных функций потерь для предсказания, все двоичные ученики должны вернуть счет в той же области значений. Например, вы не можете включать двоичных учащихся SVM по умолчанию с наивными двоичными учениками Байеса по умолчанию. Первый возвращает счет в области значений (- ∞, ∞), а второй возвращает апостериорную вероятность как счет. В противном случае необходимо предоставить пользовательскую потерю в качестве указателя на функцию таким функциям, как predict
и loss
.
Вы не можете задать шаблоны учащихся линейной классификационной модели с любым другим шаблоном.
Точно так же вы не можете задать шаблоны модели классификации ядра для учащихся с любым другим шаблоном.
По умолчанию программа обучает учащихся с помощью шаблонов SVM по умолчанию.
Пример: 'Learners','tree'
t
- шаблон классификации ECOCШаблон классификации ECOC, возвращенный как объект шаблона. Передайте t
кому testckfold
чтобы указать, как создать классификатор ECOC, прогнозирующую эффективность которого необходимо сравнить с другим классификатором.
Если вы отображаете t
в Командное окно, затем все, не заданные опции появляются пустыми ([]
). Однако во время обучения программа заменяет пустые опции соответствующими значениями по умолчанию.
ClassificationECOC
| designecoc
| fitcecoc
| predict
| templateDiscriminant
| templateEnsemble
| templateKNN
| templateSVM
| templateTree
| testckfold
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.