Потеря классификации для перекрестно проверенной модели классификации ядра
возвращает потерю классификации, полученную перекрестно проверенной двоичной моделью ядра (loss = kfoldLoss(CVMdl)ClassificationPartitionedKernel) CVMdl. Для каждого раза, kfoldLoss вычисляет потерю классификации для проверочных наблюдений с использованием модели, обученной тренировочным наблюдениям.
По умолчанию kfoldLoss возвращает ошибку классификации.
возвращает потерю классификации с дополнительными опциями, заданными одним или несколькими аргументами пары имя-значение. Например, укажите функцию потери классификации, количество складок или уровень агрегации.loss = kfoldLoss(CVMdl,Name,Value)
Загрузить ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный отклик для радарных возвращений, которые помечены как плохие ('b') или хорошо ('g').
load ionosphereПерекрестная проверка двоичной модели классификации ядра с использованием данных.
CVMdl = fitckernel(X,Y,'Crossval','on')
CVMdl =
ClassificationPartitionedKernel
CrossValidatedModel: 'Kernel'
ResponseName: 'Y'
NumObservations: 351
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
CVMdl является ClassificationPartitionedKernel модель. По умолчанию программное обеспечение реализует 10-кратную перекрестную проверку. Чтобы указать другое количество сгибов, используйте 'KFold' аргумент пары имя-значение вместо 'Crossval'.
Оцените перекрестную проверенную потерю классификации. По умолчанию программа вычисляет ошибку классификации.
loss = kfoldLoss(CVMdl)
loss = 0.0940
Кроме того, можно получить кратные ошибки классификации, указав пару имя-значение. 'Mode','individual' в kfoldLoss.
Загрузить ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный отклик для радарных возвращений, которые помечены как плохие ('b') или хорошо ('g').
load ionosphereПерекрестная проверка двоичной модели классификации ядра с использованием данных.
CVMdl = fitckernel(X,Y,'Crossval','on')
CVMdl =
ClassificationPartitionedKernel
CrossValidatedModel: 'Kernel'
ResponseName: 'Y'
NumObservations: 351
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
CVMdl является ClassificationPartitionedKernel модель. По умолчанию программное обеспечение реализует 10-кратную перекрестную проверку. Чтобы указать другое количество сгибов, используйте 'KFold' аргумент пары имя-значение вместо 'Crossval'.
Создайте анонимную функцию, измеряющую линейные потери, т. е.
- вес для наблюдения j, - ответ j (-1 для отрицательного класса и 1 в противном случае), и - необработанный классификационный балл наблюдения j.
linearloss = @(C,S,W,Cost)sum(-W.*sum(S.*C,2))/sum(W);
Пользовательские функции потери должны быть написаны в определенной форме. Правила записи пользовательской функции потери см. в разделе 'LossFun' аргумент пары имя-значение.
Оцените потери классификации с перекрестной проверкой с помощью линейной функции потерь.
loss = kfoldLoss(CVMdl,'LossFun',linearloss)loss = -0.7792
CVMdl - Перекрестная проверка, двоичная модель классификации ядраClassificationPartitionedKernel объект моделиПерекрестная проверка, двоичная модель классификации ядра, указанная как ClassificationPartitionedKernel объект модели. Можно создать ClassificationPartitionedKernel модель с использованием fitckernel и задают любой из аргументов пары имя-значение перекрестной проверки.
Для получения оценок, kfoldLoss применяет те же данные, которые используются для перекрестной проверки модели классификации ядра (X и Y).
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
kfoldLoss(CVMdl,'Folds',[1 3 5]) указывает использовать только первый, третий и пятый сгибы для вычисления потери классификации.'Folds' - Кратные индексы для прогнозирования1:CVMdl.KFold (по умолчанию) | числовой вектор положительных целых чиселИндексы складки для прогнозирования, указанные как пара, разделенная запятыми, состоящая из 'Folds' и числовой вектор положительных целых чисел. Элементы Folds должно находиться в диапазоне от 1 кому CVMdl.KFold.
Программное обеспечение использует только складки, указанные в Folds для прогнозирования.
Пример: 'Folds',[1 4 10]
Типы данных: single | double
'LossFun' - Функция потерь'classiferror' (по умолчанию) | 'binodeviance' | 'exponential' | 'hinge' | 'logit' | 'mincost' | 'quadratic' | дескриптор функцииФункция потерь, заданная как разделенная запятыми пара, состоящая из 'LossFun' и встроенное имя функции потери или дескриптор функции.
В этой таблице перечислены доступные функции потерь. Укажите соответствующее значение.
| Стоимость | Описание |
|---|---|
'binodeviance' | Биномиальное отклонение |
'classiferror' | Неверно классифицированная скорость в десятичной |
'exponential' | Экспоненциальные потери |
'hinge' | Потеря шарнира |
'logit' | Логистические потери |
'mincost' | Минимальная ожидаемая стоимость неправильной классификации (для классификационных оценок, которые являются задними вероятностями) |
'quadratic' | Квадратичные потери |
'mincost' подходит для классификационных оценок, которые являются задними вероятностями. Для моделей классификации ядра учащиеся логистической регрессии по умолчанию возвращают апостериорные вероятности в качестве классификационных баллов, а учащиеся SVM - нет (см. kfoldPredict).
Укажите собственную функцию с помощью нотации дескриптора функции.
Предположим, что n - количество наблюдений в X, и K - количество различных классов (numel(CVMdl.ClassNames), где CVMdl - входная модель). Ваша функция должна иметь следующую подпись:
lossvalue = lossfun(C,S,W,Cost)Выходной аргумент lossvalue является скаляром.
Указывается имя функции (lossfun).
C является nоколо-K логическая матрица со строками, указывающими класс, которому принадлежит соответствующее наблюдение. Порядок столбцов соответствует порядку классов в CVMdl.ClassNames.
Конструкция C путем установки C(p,q) = 1, если наблюдение p находится в классе q, для каждой строки. Установка всех остальных элементов строки p кому 0.
S является nоколо-K числовая матрица классификационных баллов. Порядок столбцов соответствует порядку классов в CVMdl.ClassNames. S - матрица классификационных баллов, аналогичная выходному результату kfoldPredict.
W является n-по-1 числовой вектор весов наблюдения. Если вы проходите W, программное обеспечение нормализует веса для суммирования 1.
Cost является Kоколо-K числовая матрица затрат на неправильную классификацию. Например, Cost = ones(K) – eye(K) указывает стоимость 0 для правильной классификации, и 1 для неправильной классификации.
Пример: 'LossFun',@lossfun
Типы данных: char | string | function_handle
'Mode' - Уровень агрегации для вывода'average' (по умолчанию) | 'individual'Уровень агрегации для вывода, указанный как пара, разделенная запятыми, состоящая из 'Mode' и 'average' или 'individual'.
В этой таблице описываются значения.
| Стоимость | Описание |
|---|---|
'average' | Вывод является скалярным средним по всем складкам. |
'individual' | Выходной сигнал представляет собой вектор длины k, содержащий одно значение на единицу, где k - количество сгибов. |
Пример: 'Mode','individual'
loss - классификационные потери;Потеря классификации, возвращаемая в виде числового скалярного или числового вектора столбца.
Если Mode является 'average', то loss - средняя потеря классификации по всем складкам. В противном случае loss - вектор числового столбца k-by-1, содержащий классификационные потери для каждой складки, где k - количество складок.
Функции потери классификации измеряют прогностическую неточность классификационных моделей. При сравнении одного и того же типа потерь между многими моделями меньшие потери указывают на лучшую прогностическую модель.
Предположим, что:
L - средневзвешенная потеря классификации.
n - размер выборки.
yj - наблюдаемая метка класса. Программное обеспечение кодирует его как -1 или 1, указывая отрицательный или положительный класс (или первый или второй класс в ClassNames свойство), соответственно.
f (Xj) - показатель классификации положительного класса для наблюдения (строки) j данных прогнозирования X.
mj = yjf (Xj) - показатель классификации для классификации наблюдения j в класс, соответствующий yj. Положительные значения mj указывают на правильную классификацию и не вносят большого вклада в средние потери. Отрицательные значения mj указывают на неправильную классификацию и вносят значительный вклад в средний убыток.
Вес для наблюдения j равен wj. Программное обеспечение нормализует весовые коэффициенты наблюдения таким образом, что они суммируются с соответствующей вероятностью предыдущего класса. Программное обеспечение также нормализует предыдущие вероятности так, чтобы они равнялись 1. Поэтому
В этой таблице описаны поддерживаемые функции потерь, которые можно указать с помощью 'LossFun' аргумент «имя-значение».
| Функция потерь | Значение LossFun | Уравнение |
|---|---|---|
| Биномиальное отклонение | 'binodeviance' | |
| Экспоненциальные потери | 'exponential' | ). |
| Неверно классифицированная скорость в десятичной | 'classiferror' | j - метка класса, соответствующая классу с максимальным баллом. I {·} - функция индикатора. |
| Потеря шарнира | 'hinge' | |
| Потеря журнала | 'logit' | mj)). |
| Минимальная ожидаемая стоимость классификации ошибок | 'mincost' |
Программное обеспечение вычисляет взвешенную минимальную ожидаемую стоимость классификации, используя эту процедуру для наблюдений j = 1,..., n.
Средневзвешенное минимальное ожидаемое снижение затрат на неправильную классификацию Если используется матрица затрат по умолчанию (значение элемента которой равно 0 для правильной классификации и 1 для неправильной классификации), то |
| Квадратичные потери | 'quadratic' | ) 2. |
На этом рисунке сравниваются функции потерь (за исключением 'mincost') над баллом м для одного наблюдения. Некоторые функции нормализуются для прохождения через точку (0,1).

Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.