Потеря классификации возмещения
возвращает классификационную потерю путем повторной субституции (L) или классификационную потерю в выборке для обученной классификационной модели 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около-K логическая матрица со строками, указывающими класс, которому принадлежит соответствующее наблюдение. n - количество наблюдений в Tbl или X, и K - количество различных классов (numel(Mdl.ClassNames). Порядок столбцов соответствует порядку классов в Mdl.ClassNames. Создать C путем установки C(p,q) = 1, если наблюдение p находится в классе q, для каждой строки. Установка всех остальных элементов строки p кому 0.
S является nоколо-K числовая матрица классификационных баллов. Порядок столбцов соответствует порядку классов в Mdl.ClassNames. S - матрица классификационных баллов, аналогичная выходному результату predict.
W является n-по-1 числовой вектор весов наблюдения.
Cost является Kоколо-K числовая матрица затрат на неправильную классификацию. Например, Cost = ones(K) – eye(K) указывает стоимость 0 для правильной классификации и 1 для неправильной классификации.
Пример: 'LossFun','binodeviance'
Типы данных: char | string | function_handle
Функции потери классификации измеряют прогностическую неточность классификационных моделей. При сравнении одного и того же типа потерь между многими моделями меньшие потери указывают на лучшую прогностическую модель.
Рассмотрим следующий сценарий.
L - средневзвешенная потеря классификации.
n - размер выборки.
Для двоичной классификации:
yj - наблюдаемая метка класса. Программное обеспечение кодирует его как -1 или 1, указывая отрицательный или положительный класс (или первый или второй класс в ClassNames свойство), соответственно.
f (Xj) - показатель классификации положительного класса для наблюдения (строки) j данных прогнозирования X.
mj = yjf (Xj) - показатель классификации для классификации наблюдения j в класс, соответствующий yj. Положительные значения mj указывают на правильную классификацию и не вносят большого вклада в средние потери. Отрицательные значения mj указывают на неправильную классификацию и вносят значительный вклад в средний убыток.
Для алгоритмов, поддерживающих мультиклассовую классификацию (то есть K ≥ 3):
yj * - вектор из K - 1 нулей, с 1 в положении, соответствующем истинному наблюдаемому классу yj. Например, если истинным классом второго наблюдения является третий класс и K = 4, то y2 * = [0 0 1 0] ′. Порядок классов соответствует порядку в ClassNames свойства входной модели.
f (Xj) - вектор длины K оценок класса для наблюдения j данных предсказателя X. Порядок оценок соответствует порядку классов в ClassNames свойства входной модели.
mj = yj * ′ f (Xj). Поэтому mj - это скалярная оценка классификации, которую модель прогнозирует для истинного наблюдаемого класса.
Вес для наблюдения j равен wj. Программное обеспечение нормализует весовые коэффициенты наблюдения таким образом, что они суммируются с соответствующей вероятностью предыдущего класса. Программное обеспечение также нормализует предыдущие вероятности, так что они составляют 1. Поэтому
С учетом этого сценария в следующей таблице описаны поддерживаемые функции потерь, которые можно указать с помощью 'LossFun' аргумент пары имя-значение.
| Функция потерь | Значение LossFun | Уравнение |
|---|---|---|
| Биномиальное отклонение | 'binodeviance' | |
| Неверно классифицированная скорость в десятичной | 'classiferror' | j - метка класса, соответствующая классу с максимальным баллом. I {·} - функция индикатора. |
| Потери перекрестной энтропии | 'crossentropy' |
Взвешенная потеря перекрестной энтропии равна Kn, где веса нормализуются для суммирования в n вместо 1. |
| Экспоненциальные потери | 'exponential' | ). |
| Потеря шарнира | 'hinge' | |
| Потеря журнала | 'logit' | mj)). |
| Минимальная ожидаемая стоимость классификации ошибок | 'mincost' |
Программное обеспечение вычисляет взвешенную минимальную ожидаемую стоимость классификации, используя эту процедуру для наблюдений j = 1,..., n.
Средневзвешенное минимальное ожидаемое снижение затрат на неправильную классификацию Если используется матрица затрат по умолчанию (значение элемента которой равно 0 для правильной классификации и 1 для неправильной классификации), то |
| Квадратичные потери | 'quadratic' | ) 2. |
На этом рисунке сравниваются функции потерь (за исключением 'crossentropy' и 'mincost') над баллом м для одного наблюдения. Некоторые функции нормализуются для прохождения через точку (0,1).

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