Выходной шаблон ученика кода с коррекцией ошибок
возвращает шаблон ученика классификации выходных кодов с коррекцией ошибок (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. Задайте, чтобы использовать one-all, кодирующего проект.
t = templateECOC('Coding','onevsall');
По умолчанию модель ECOC использует линейных бинарных учеников SVM. Можно выбрать другой, поддерживаемые алгоритмы путем определения их использующий 'Learners'
аргумент пары "имя-значение".
Протестируйте, выполняет ли модель ECOC, которая только обучена с помощью предикторов 3 и 4, самое большее, а также модель ECOC, которая обучена с помощью всех предикторов. Отклонение этой нулевой гипотезы означает, что модель ECOC обученное использование предикторов 3 и 4 выполняет лучше, чем модель ECOC, обученная с помощью всех предикторов. Предположим представляет ошибку классификации модели ECOC, обученной с помощью предикторов 3 и 4 и представляет ошибку классификации модели ECOC, обученной с помощью всех предикторов, затем тест:
По умолчанию, testckfold
проводит 5 2 k-сгиб F тест, который не является соответствующим как односторонний тест. Задайте, чтобы провести 5 2 k-сгиб 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
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 log2K | Для каждого бинарного ученика программное обеспечение случайным образом присваивает классы в положительные или отрицательные классы с по крайней мере одним из каждого типа. Для получения дополнительной информации см. Случайные Матрицы Проекта Кодирования. |
'onevsall' | K | Для каждого бинарного ученика один класс положителен, и остальные отрицательны. Этот проект исчерпывает все комбинации положительных присвоений класса. |
'ordinal' | K 1 | Для первого бинарного ученика первый класс отрицателен, и остальные положительные. Для второго бинарного ученика первые два класса отрицательны, остальные положительные, и так далее. |
'sparserandom' | Случайный, но приблизительно 15 log2K | Для каждого бинарного ученика программное обеспечение случайным образом присваивает классы как положительные или отрицательные с вероятностью 0.25 для каждого, и игнорирует классы с вероятностью 0.5. Для получения дополнительной информации см. Случайные Матрицы Проекта Кодирования. |
'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)
.
Все строки пользовательской матрицы кодирования должны отличаться.
Для получения дополнительной информации о форме пользовательских матриц проекта кодирования см. Пользовательские Матрицы Проекта Кодирования.
Пример: 'Coding','ternarycomplete'
Типы данных: char |
string
| double
| single
| int16
| int32
| int64
| int8
FitPosterior
— Отметьте указание, преобразовать ли баллы к апостериорным вероятностямfalse
или 0
(значение по умолчанию) | true
или 1
Отметьте указание, преобразовать ли баллы к апостериорным вероятностям в виде разделенной запятой пары, состоящей из 'FitPosterior'
и true
(1 ) или
false
(0 ).
Если FitPosterior
true
, затем программное обеспечение преобразовывает классификационные оценки бинарного ученика к апостериорным вероятностям. Можно получить апостериорные вероятности при помощи kfoldPredict
, predict
, или resubPredict
.
fitcecoc
не поддерживает подходящие апостериорные вероятности если:
Методом ансамбля является AdaBoostM2
, LPBoost
, RUSBoost
, RobustBoost
, или TotalBoost
.
Бинарные ученики (Learners
) линейны или модели классификации ядер та реализация SVM. Чтобы получить апостериорные вероятности для линейного или моделей классификации ядер, реализуйте логистическую регрессию вместо этого.
Пример: 'FitPosterior',true
Типы данных: логический
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
| fitcecoc
| designecoc
| templateDiscriminant
| templateEnsemble
| templateKNN
| templateSVM
| templateTree
| predict
| testckfold
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.