Потери по классификации реституции
возвращает Classification Loss by resubstitution (L), или в выборке classification loss, для обученной классификационной модели L = resubLoss(Mdl)Mdl использование обучающих данных, хранящихся в Mdl.X и соответствующие метки классов, хранящиеся в Mdl.Y.
Толкование L зависит от функции потерь ('LossFun') и схемы взвешивания (Mdl.W). В целом лучшие классификаторы дают меньшие значения классификационных потерь. Значение по умолчанию 'LossFun' значение изменяется в зависимости от объекта модели Mdl.
задает дополнительные опции, используя один или несколько аргументов имя-значение. Для примера, L = resubLoss(Mdl,Name,Value)'LossFun','binodeviance' устанавливает функцию потерь в функцию биномиального отклонения.
Определите ошибку классификации в выборке (потеря реституции) наивного классификатора Байеса. В целом меньшие потери указывают на лучший классификатор.
Загрузите fisheriris набор данных. Создание X как числовая матрица, которая содержит четыре измерения для 150 ирисов. Создание Y как массив ячеек из векторов символов, который содержит соответствующие виды радужной оболочки.
load fisheriris
X = meas;
Y = species;Обучите наивный классификатор Байеса с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. fitcnb принимает, что каждый предиктор условно и нормально распределен.
Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'})
Mdl =
ClassificationNaiveBayes
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
NumObservations: 150
DistributionNames: {'normal' 'normal' 'normal' 'normal'}
DistributionParameters: {3x4 cell}
Properties, Methods
Mdl является обученным ClassificationNaiveBayes классификатор.
Оцените ошибку классификации в выборке.
L = resubLoss(Mdl)
L = 0.0400
Наивный классификатор Байеса неправильно классифицирует 4% обучающих наблюдений.
Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').
load ionosphereОбучите классификатор машины опорных векторов (SVM). Стандартизируйте данные и задайте, что 'g' - положительный класс.
SVMModel = fitcsvm(X,Y,'ClassNames',{'b','g'},'Standardize',true);
SVMModel является обученным ClassificationSVM классификатор.
Оцените потери шарнира в образце.
L = resubLoss(SVMModel,'LossFun','hinge')
L = 0.1603
Потеря шарнира 0.1603. Предпочтительными являются классификаторы с потерями шарниров, близкими к 0.
Обучите обобщенную аддитивную модель (GAM), которая содержит как линейные, так и условия взаимодействия для предикторов, и оцените классификационные потери с терминами взаимодействия и без. Укажите, включать ли условия взаимодействия при оценке потерь классификации для обучающих и тестовых данных.
Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').
load ionosphereРазделите набор данных на два набора: один, содержащий обучающие данные, и другой, содержащий новые, незащищенные тестовые данные. Резервируйте 50 наблюдений для нового набора тестовых данных.
rng('default') % For reproducibility n = size(X,1); newInds = randsample(n,50); inds = ~ismember(1:n,newInds); XNew = X(newInds,:); YNew = Y(newInds);
Обучите GAM с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. Укажите, чтобы включить 10 наиболее важных условий взаимодействия.
Mdl = fitcgam(X(inds,:),Y(inds),'ClassNames',{'b','g'},'Interactions',10)
Mdl =
ClassificationGAM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'logit'
Intercept: 2.0026
Interactions: [10x2 double]
NumObservations: 301
Properties, Methods
Mdl является ClassificationGAM объект модели.
Вычислите потери классификации реституции как с терминами взаимодействия, так и без них в Mdl. Чтобы исключить условия взаимодействия, задайте 'IncludeInteractions',false.
resubl = resubLoss(Mdl)
resubl = 0
resubl_nointeraction = resubLoss(Mdl,'IncludeInteractions',false)resubl_nointeraction = 0
Оцените классификационные потери как с терминами взаимодействия, так и без них в Mdl.
l = loss(Mdl,XNew,YNew)
l = 0.0615
l_nointeraction = loss(Mdl,XNew,YNew,'IncludeInteractions',false)l_nointeraction = 0.0615
Включение условий взаимодействия не меняет классификационные потери для Mdl. Обученная модель правильно классифицирует все обучающие выборки и неправильно классифицирует приблизительно 6% тестовых выборок.
Mdl - Классификационная модель машинного обученияКлассификационная модель машинного обучения, заданная как объект модели полной классификации, как представлено в следующей таблице поддерживаемых моделей.
| Модель | Объект модели |
|---|---|
| Обобщенная аддитивная модель | ClassificationGAM |
| k - ближайшая соседняя модель | ClassificationKNN |
| Наивная модель Байеса | ClassificationNaiveBayes |
| Модель нейронной сети | ClassificationNeuralNetwork |
| Поддерживайте векторную машину для одноклассовой и двоичной классификации | ClassificationSVM |
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
resubLoss(Mdl,'LossFun','logit') оценивает потерю реституции логита.'IncludeInteractions' - Флаг для включения условий взаимодействияtrue | falseФлаг для включения условий взаимодействия модели, заданный как true или false. Этот аргумент действителен только для обобщенной аддитивной модели (GAM). То есть можно задать этот аргумент только тогда, когда Mdl является ClassificationGAM.
Значение по умолчанию true если Mdl содержит условия взаимодействия. Значение должно быть false если модель не содержит членов взаимодействия.
Типы данных: logical
'LossFun' - Функция потерь'binodeviance' | 'classiferror' | 'crossentropy' | 'exponential' | 'hinge' | 'logit' | 'mincost' | 'quadratic' | указатель на функциюФункция потерь, заданная как встроенное имя функции потерь или указатель на функцию.
В этой таблице перечислены доступные функции потерь. Задайте один с помощью соответствующего вектора символов или строкового скаляра.
| Значение | Описание |
|---|---|
'binodeviance' | Биномиальное отклонение |
'classiferror' | Неверно классифицированный коэффициент в десятичных числах |
'crossentropy' | Потеря перекрестной энтропии (только для нейронных сетей) |
'exponential' | Экспоненциальные потери |
'hinge' | Потеря шарнира |
'logit' | Логистические потери |
'mincost' | Минимальные ожидаемые затраты на неправильную классификацию (для классификационных оценок, которые являются апостериорными вероятностями) |
'quadratic' | Квадратичные потери |
Значение по умолчанию зависит от обученной модели (Mdl).
Значение по умолчанию 'classiferror' если Mdl является ClassificationGAM, ClassificationNeuralNetwork, или ClassificationSVM объект.
Значение по умолчанию 'mincost' если Mdl является ClassificationKNN или ClassificationNaiveBayes объект.
Для получения дополнительной информации о функциях потерь смотрите Классификационные потери.
Чтобы задать пользовательскую функцию потерь, используйте обозначение указателя на функцию. Функция должна иметь следующую форму:
lossvalue = lossfun(C,S,W,Cost)
Выходной аргумент lossvalue является скаляром.
Вы задаете имя функции (lossfun).
C является n-by- K логическая матрица с строками, указывающими класс, к которому принадлежит соответствующее наблюдение. n количество наблюдений в Tbl или X, и K - количество различных классов (numel(Mdl.ClassNames). Порядок столбцов соответствует порядку классов в Mdl.ClassNames. Создание C путем установки C(p,q) = 1, если наблюдение p находится в q классов, для каждой строки. Установите все другие элементы строки p на 0.
S является n-by- K числовая матрица классификационных оценок. Порядок столбцов соответствует порядку классов в Mdl.ClassNames. S является матрицей классификационных оценок, подобной выходным данным predict.
W является n-by-1 числовой вектор весов наблюдений.
Cost является K-by- K числовая матрица затрат на неправильную классификацию. Для примера, Cost = ones(K) – eye(K) задает стоимость 0 для правильной классификации и 1 для неправильной классификации.
Пример: 'LossFun','binodeviance'
Типы данных: char | string | function_handle
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 (<reservedrangesplaceholder1>). Поэтому mj является скалярной классификационной оценкой, которую модель предсказывает для истинного наблюдаемого класса.
Вес для j наблюдения wj. Программа нормализует веса наблюдений так, чтобы они суммировались с соответствующей вероятностью предыдущего класса. Программное обеспечение также нормализует предыдущие вероятности, поэтому они равны 1. Поэтому,
С учетом этого сценария в следующей таблице описываются поддерживаемые функции потерь, которые можно задать при помощи 'LossFun' аргумент пары "имя-значение".
| Функция потерь | Значение LossFun | Уравнение |
|---|---|---|
| Биномиальное отклонение | 'binodeviance' | |
| Неверно классифицированный коэффициент в десятичных числах | 'classiferror' | - метка класса, соответствующая классу с максимальным счетом. I {·} является функцией индикации. |
| Потери перекрестной энтропии | 'crossentropy' |
Взвешенные потери перекрестной энтропии где веса нормированы в сумме к n вместо 1. |
| Экспоненциальные потери | 'exponential' | |
| Потеря шарнира | 'hinge' | |
| Логит потеря | 'logit' | |
| Минимальные ожидаемые затраты на неправильную классификацию | 'mincost' |
Программа вычисляет взвешенные минимальные ожидаемые затраты классификации, используя эту процедуру для наблюдений j = 1,..., n.
Взвешенное среднее значение минимальных ожидаемых потерь от неправильной классификации Если вы используете матрицу затрат по умолчанию (значение элемента которой 0 для правильной классификации и 1 для неправильной классификации), то |
| Квадратичные потери | 'quadratic' |
Этот рисунок сравнивает функции потерь (кроме 'crossentropy' и 'mincost') по счету m для одного наблюдения. Некоторые функции нормированы, чтобы пройти через точку (0,1).

resubLoss вычисляет классификационные потери согласно соответствующей loss функция объекта (Mdl). Для описания модели смотрите loss функция, страницы с описанием в следующей таблице.
| Модель | Объект модели (Mdl) | loss Функция объекта |
|---|---|---|
| Обобщенная аддитивная модель | ClassificationGAM | loss |
| k - ближайшая соседняя модель | ClassificationKNN | loss |
| Наивная модель Байеса | ClassificationNaiveBayes | loss |
| Модель нейронной сети | ClassificationNeuralNetwork | loss |
| Поддерживайте векторную машину для одноклассовой и двоичной классификации | ClassificationSVM | loss |
Указания и ограничения по применению:
Эта функция поддерживает ClassificationKNN и ClassificationSVM объекты, оснащенные входными параметрами массива GPU.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.