Потеря классификации для перекрестной подтвержденной модели классификации
возвращает потерю классификации, полученную перекрестной подтвержденной моделью L
= kfoldLoss(CVMdl
)CVMdl
классификации. Для каждого сгиба,
kfoldLoss
вычисляет потерю классификации для наблюдений сгиба валидации с помощью классификатора, обученного на наблюдениях учебного сгиба. CVMdl.X
и CVMdl.Y
содержите оба набора наблюдений.
возвращает потерю классификации с дополнительными опциями, заданными одним или несколькими аргументами значения имени. Например, можно задать пользовательскую функцию потерь.L
= kfoldLoss(CVMdl
,Name,Value
)
Загрузите ionosphere
набор данных.
load ionosphere
Вырастите дерево классификации.
tree = fitctree(X,Y);
Перекрестный подтвердите дерево классификации использование 10-кратной перекрестной проверки.
cvtree = crossval(tree);
Оцените перекрестную подтвержденную ошибку классификации.
L = kfoldLoss(cvtree)
L = 0.1083
Загрузите ionosphere
набор данных.
load ionosphere
Обучите ансамбль классификации 100 деревьев решений с помощью AdaBoostM1. Задайте пни как слабых учеников.
t = templateTree('MaxNumSplits',1); ens = fitcensemble(X,Y,'Method','AdaBoostM1','Learners',t);
Перекрестный подтвердите ансамбль, использующий 10-кратную перекрестную проверку.
cvens = crossval(ens);
Оцените перекрестную подтвержденную ошибку классификации.
L = kfoldLoss(cvens)
L = 0.0655
kfoldLoss
Обучите перекрестную подтвержденную обобщенную аддитивную модель (GAM) с 10 сгибами. Затем используйте kfoldLoss
вычислить совокупные ошибки классификации перекрестных проверок (misclassification уровень в десятичном числе). Используйте ошибки определить оптимальное количество деревьев на предиктор (линейный член для предиктора) и оптимальное количество деревьев в период взаимодействия.
В качестве альтернативы можно найти оптимальные значения fitcgam
аргументы значения имени при помощи bayesopt
функция. Для примера смотрите, Оптимизируют перекрестный Подтвержденный GAM Используя bayesopt.
Загрузите ionosphere
набор данных. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, любой плохо ('b'
) или хороший ('g'
).
load ionosphere
Создайте перекрестный подтвержденный GAM при помощи опции перекрестной проверки по умолчанию. Задайте 'CrossVal'
аргумент значения имени как 'on'
. Задайте, чтобы включать все доступные периоды взаимодействия, p-значения которых не больше 0.05.
rng('default') % For reproducibility CVMdl = fitcgam(X,Y,'CrossVal','on','Interactions','all','MaxPValue',0.05);
Если вы задаете 'Mode'
как 'cumulative'
для kfoldLoss
, затем функция возвращает совокупные ошибки, которые являются средними погрешностями через все сгибы, полученные с помощью того же количества деревьев для каждого сгиба. Отобразите количество деревьев для каждого сгиба.
CVMdl.NumTrainedPerFold
ans = struct with fields:
PredictorTrees: [65 64 59 61 60 66 65 62 64 61]
InteractionTrees: [1 2 2 2 2 1 2 2 2 2]
kfoldLoss
может вычислить совокупные ошибки до 59 деревьев предиктора и одно дерево взаимодействия.
Постройте совокупное, перекрестное подтвержденное 10-кратное, ошибка классификации (misclassification уровень в десятичном числе). Задайте 'IncludeInteractions'
как false
исключить периоды взаимодействия из расчета.
L_noInteractions = kfoldLoss(CVMdl,'Mode','cumulative','IncludeInteractions',false); figure plot(0:min(CVMdl.NumTrainedPerFold.PredictorTrees),L_noInteractions)
Первый элемент L_noInteractions
средняя погрешность по всем сгибам, полученным с помощью только точку пересечения (постоянный) термин. (J+1
) элемент th L_noInteractions
полученное использование средней погрешности термина точки пересечения и первого J
деревья предиктора на линейный член. Графический вывод совокупной потери позволяет вам контролировать, как ошибка изменяется как количество деревьев предиктора в увеличениях GAM.
Найдите минимальную ошибку, и количество деревьев предиктора раньше достигало минимальной ошибки.
[M,I] = min(L_noInteractions)
M = 0.0655
I = 23
GAM достигает минимальной ошибки, когда это включает 22 дерева предиктора.
Вычислите совокупную ошибку классификации и линейные члены и периоды взаимодействия.
L = kfoldLoss(CVMdl,'Mode','cumulative')
L = 2×1
0.0712
0.0712
Первый элемент L
средняя погрешность по всем сгибам, полученным с помощью точки пересечения (постоянный) термин и все деревья предиктора на линейный член. Второй элемент L
полученное использование средней погрешности термина точки пересечения, всех деревьев предиктора на линейный член и одного дерева взаимодействия в период взаимодействия. Ошибка не уменьшается, когда периоды взаимодействия добавляются.
Если вы удовлетворены ошибкой, когда количество деревьев предиктора равняется 22, можно создать прогнозную модель по образованию одномерный GAM снова и определение 'NumTreesPerPredictor',22
без перекрестной проверки.
CVMdl
— Перекрестный подтвержденный разделенный классификаторClassificationPartitionedModel
возразите | ClassificationPartitionedEnsemble
возразите | ClassificationPartitionedGAM
объектПерекрестный подтвержденный разделенный классификатор в виде ClassificationPartitionedModel
, ClassificationPartitionedEnsemble
, или ClassificationPartitionedGAM
объект. Можно создать объект двумя способами:
Передайте обученную модель классификации, перечисленную в следующей таблице к crossval
объектная функция.
Обучите модель классификации использование функции, перечисленной в следующей таблице, и задайте один из аргументов значения имени перекрестной проверки для функции.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
kfoldLoss(CVMdl,'Folds',[1 2 3 5])
задает, чтобы использовать первые, вторые, третьи, и пятые сгибы, чтобы вычислить потерю классификации, но исключить четвертый сгиб.'Folds'
— Сверните индексы, чтобы использовать1:CVMdl.KFold
(значение по умолчанию) | положительный целочисленный векторСверните индексы, чтобы использовать в виде положительного целочисленного вектора. Элементы Folds
должен быть в диапазоне от 1
к CVMdl.KFold
.
Программное обеспечение использует только сгибы, заданные в Folds
.
Пример: 'Folds',[1 4 10]
Типы данных: single
| double
'IncludeInteractions'
— Отметьте, чтобы включать периоды взаимодействияtrue
| false
Отметьте, чтобы включать периоды взаимодействия модели в виде true
или false
. Этот аргумент допустим только для обобщенной аддитивной модели (GAM). Таким образом, можно задать этот аргумент только когда CVMdl
ClassificationPartitionedGAM
.
Значением по умолчанию является true
если модели в CVMdl
(CVMdl.Trained
) содержите периоды взаимодействия. Значением должен быть false
если модели не содержат периоды взаимодействия.
Типы данных: логический
'LossFun'
— Функция потерь'classiferror'
| 'binodeviance'
| 'crossentropy'
| 'exponential'
| 'hinge'
| 'logit'
| 'mincost'
| 'quadratic'
| указатель на функциюФункция потерь в виде встроенного имени функции потерь или указателя на функцию. Функция потерь по умолчанию зависит от типа модели CVMdl
.
Значением по умолчанию является 'classiferror'
если тип модели является ансамблем, обобщил аддитивную модель, нейронную сеть или классификатор машины опорных векторов.
Значением по умолчанию является 'mincost'
если тип модели является дискриминантным анализом, k - самый близкий сосед, наивный Бейес, или древовидный классификатор.
'classiferror'
и 'mincost'
эквивалентны, когда вы используете матрицу стоимости по умолчанию. См. Алгоритмы для получения дополнительной информации.
Эта таблица приводит доступные функции потерь. Задайте тот с помощью его соответствующего вектора символов или строкового скаляра.
Значение | Описание |
---|---|
'binodeviance' | Биномиальное отклонение |
'classiferror' | Неправильно классифицированный уровень в десятичном числе |
'crossentropy' | Потеря перекрестной энтропии (только для нейронных сетей) |
'exponential' | Экспоненциальная потеря |
'hinge' | Потеря стержня |
'logit' | Логистическая потеря |
'mincost' | Минимальный ожидал стоимость misclassification (для классификационных оценок, которые являются апостериорными вероятностями), |
'quadratic' | Квадратичная потеря |
'mincost'
подходит для классификационных оценок, которые являются апостериорными вероятностями. predict
и kfoldPredict
функции дискриминантного анализа, обобщенной аддитивной модели, k - самый близкий сосед, наивный Бейес, нейронная сеть и древовидные классификаторы возвращают такие баллы по умолчанию.
Для моделей ансамбля то использование 'Bag'
или 'Subspace'
методы, классификационные оценки являются апостериорными вероятностями по умолчанию. Для моделей ансамбля то использование 'AdaBoostM1'
, 'AdaBoostM2'
, GentleBoost
, или 'LogitBoost'
методы, можно использовать апостериорные вероятности в качестве классификационных оценок путем указывания, что счет двойного логита преобразовывает. Например, введите:
CVMdl.ScoreTransform = 'doublelogit';
Для моделей SVM можно задать, чтобы использовать апостериорные вероятности в качестве классификационных оценок установкой 'FitPosterior',true
когда вы перекрестный подтверждаете использование модели fitcsvm
.
Задайте свою собственную функцию с помощью обозначения указателя на функцию.
Предположим тот n
количество наблюдений в обучающих данных (CVMdl.NumObservations
) и K
количество классов (numel(CVMdl.ClassNames)
). Ваша функция должна иметь подпись lossvalue =
, где:lossfun
(C, S, W, Стоимость)
Выходной аргумент lossvalue
скаляр.
Вы задаете имя функции (lossfun
).
C
n
- K
логическая матрица со строками, указывающими на класс, которому принадлежит соответствующее наблюдение. Порядок следования столбцов соответствует порядку класса в CVMdl.ClassNames
.
Создайте C
установкой C(p,q) = 1
если наблюдение p
находится в классе q
, для каждой строки. Установите все другие элементы строки p
к 0
.
S
n
- K
числовая матрица классификационных оценок. Порядок следования столбцов соответствует порядку класса в CVMdl.ClassNames
. Вход S
напоминает выходной аргумент score
из kfoldPredict
.
W
n
- 1 числовой вектор из весов наблюдения. Если вы передаете W
, программное обеспечение нормирует свои элементы, чтобы суммировать к 1
.
Cost
K
- K
числовая матрица затрат misclassification. Например, Cost = ones(K) – eye(K)
задает стоимость 0
для правильной классификации и 1
для misclassification.
Задайте свое использование функции 'LossFun', @
.lossfun
Для получения дополнительной информации о функциях потерь смотрите Потерю Классификации.
Пример: 'LossFun','hinge'
Типы данных: char |
string
| function_handle
'Mode'
— Уровень агрегации для выхода'average'
(значение по умолчанию) | 'individual'
| 'cumulative'
Уровень агрегации для выхода в виде 'average'
, 'individual'
, или 'cumulative'
.
Значение | Описание |
---|---|
'average' | Выход является скалярным средним значением по всем сгибам. |
'individual' | Выход является вектором из длины k, содержащий одно значение на сгиб, где k является количеством сгибов. |
'cumulative' | Примечание Если вы хотите задать это значение,
|
Пример: 'Mode','individual'
L
— Потеря классификацииПотеря классификации, возвращенная в виде числа или числового вектор-столбца.
Если Mode
'average'
, затем L
средняя потеря классификации по всем сгибам.
Если Mode
'individual'
, затем L
k-by-1 числовой вектор-столбец, содержащий потерю классификации для каждого сгиба, где k является количеством сгибов.
Если Mode
'cumulative'
и CVMdl
ClassificationPartitionedEnsemble
, затем L
min(CVMdl.NumTrainedPerFold)
- 1 числовой вектор-столбец. Каждый элемент j
средняя потеря классификации по всем сгибам, что функция получает при помощи ансамблей, обученных со слабыми учениками 1:j
.
Если Mode
'cumulative'
и CVMdl
ClassificationPartitionedGAM
, затем выходное значение зависит от IncludeInteractions
значение.
Если IncludeInteractions
false
, затем L
(1 + min(NumTrainedPerFold.PredictorTrees))
- 1 числовой вектор-столбец. Первый элемент L
средняя потеря классификации по всем сгибам, которая получена с помощью только точку пересечения (постоянный) термин. (j + 1)
элемент th L
полученное использование средней потери термина точки пересечения и первого j
деревья предиктора на линейный член.
Если IncludeInteractions
true
, затем L
(1 + min(NumTrainedPerFold.InteractionTrees))
- 1 числовой вектор-столбец. Первый элемент L
средняя потеря классификации по всем сгибам, которая получена с помощью точки пересечения (постоянный) термин и все деревья предиктора на линейный член. (j + 1)
элемент th L
полученное использование средней потери термина точки пересечения, всех деревьев предиктора на линейный член и первого j
деревья взаимодействия в период взаимодействия.
Функции Classification loss измеряют прогнозирующую погрешность моделей классификации. Когда вы сравниваете тот же тип потери среди многих моделей, более низкая потеря указывает на лучшую прогнозную модель.
Рассмотрите следующий сценарий.
L является средневзвешенной потерей классификации.
n является объемом выборки.
Для бинарной классификации:
yj является наблюдаемой меткой класса. Программные коды это как –1 или 1, указывая на отрицательный или положительный класс (или первый или второй класс в ClassNames
свойство), соответственно.
f (Xj) является классификационной оценкой положительного класса для наблюдения (строка) j данных о предикторе X.
mj = yj f (Xj) является классификационной оценкой для классификации наблюдения j в класс, соответствующий yj. Положительные значения mj указывают на правильную классификацию и не способствуют очень средней потере. Отрицательные величины mj указывают на неправильную классификацию и значительно способствуют средней потере.
Для алгоритмов, которые поддерживают классификацию мультиклассов (то есть, K ≥ 3):
yj* является вектором из K – 1 нуль, с 1 в положении, соответствующем истинному, наблюдаемому классу yj. Например, если истинный класс второго наблюдения является третьим классом и K = 4, то y 2* = [0 0 1 0] ′. Порядок классов соответствует порядку в ClassNames
свойство входной модели.
f (Xj) является длиной вектор K из музыки класса к наблюдению j данных о предикторе X. Порядок баллов соответствует порядку классов в ClassNames
свойство входной модели.
mj = yj* ′ f (Xj). Поэтому mj является скалярной классификационной оценкой, которую модель предсказывает для истинного, наблюдаемого класса.
Весом для наблюдения j является wj. Программное обеспечение нормирует веса наблюдения так, чтобы они суммировали к соответствующей предшествующей вероятности класса. Программное обеспечение также нормирует априорные вероятности, таким образом, они суммируют к 1. Поэтому
Учитывая этот сценарий, следующая таблица описывает поддерживаемые функции потерь, которые можно задать при помощи 'LossFun'
аргумент пары "имя-значение".
Функция потерь | Значение LossFun | Уравнение |
---|---|---|
Биномиальное отклонение | 'binodeviance' | |
Неправильно классифицированный уровень в десятичном числе | 'classiferror' | метка класса, соответствующая классу с максимальным счетом. I {·} является функцией индикатора. |
Потеря перекрестной энтропии | 'crossentropy' |
Взвешенная потеря перекрестной энтропии где веса нормированы, чтобы суммировать к n вместо 1. |
Экспоненциальная потеря | 'exponential' | |
Потеря стержня | 'hinge' | |
Потеря логита | 'logit' | |
Минимальный ожидал стоимость misclassification | 'mincost' |
Программное обеспечение вычисляет взвешенную минимальную ожидаемую стоимость классификации с помощью этой процедуры для наблюдений j = 1..., n.
Взвешенное среднее минимального ожидало, что потеря стоимости misclassification Если вы используете матрицу стоимости по умолчанию (чье значение элемента 0 для правильной классификации и 1 для неправильной классификации), то |
Квадратичная потеря | 'quadratic' |
Этот рисунок сравнивает функции потерь (кроме 'crossentropy'
и 'mincost'
) по счету m для одного наблюдения. Некоторые функции нормированы, чтобы пройти через точку (0,1).
kfoldLoss
вычисляет потерю классификации как описано в соответствии loss
объектная функция. Для описания модели специфичного смотрите соответствующее loss
страница ссылки на функцию в следующей таблице.
Тип модели | loss Функция |
---|---|
Классификатор дискриминантного анализа | loss |
Классификатор ансамбля | loss |
Обобщенный аддитивный классификатор модели | loss |
k- соседний классификатор | loss |
Наивный классификатор Байеса | loss |
Классификатор нейронной сети | loss |
Классификатор машины опорных векторов | loss |
Дерево выбора из двух альтернатив для классификации мультиклассов | loss |
Указания и ограничения по применению:
Эта функция поддерживает k - самый близкий сосед и объекты модели SVM, снабженные входными параметрами графического процессора массивов.
Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
ClassificationPartitionedModel
| kfoldEdge
| kfoldfun
| kfoldMargin
| kfoldPredict
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.