Потеря классификации для Гауссовой модели классификации ядер
L = loss(Mdl,X,Y)
L = loss(Mdl,X,Y,Name,Value)
возвращает потерю классификации для бинарной Гауссовой модели L
= loss(Mdl
,X
,Y
)Mdl
классификации ядер с помощью данных о предикторе в X
и соответствующих меток класса в Y
.
Загрузите набор данных ionosphere
. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, или плохой ('b'
) или хороший ('g'
).
load ionosphere
Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 15%-ю выборку затяжки для набора тестов.
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
Обучите бинарную модель классификации ядер использование набора обучающих данных.
Mdl = fitckernel(X(trainingInds,:),Y(trainingInds));
Оцените ошибку классификации наборов обучающих данных и ошибку классификации наборов тестов.
ceTrain = loss(Mdl,X(trainingInds,:),Y(trainingInds))
ceTrain = 0.0067
ceTest = loss(Mdl,X(testInds,:),Y(testInds))
ceTest = 0.1140
Загрузите набор данных ionosphere
. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, или плохой ('b'
) или хороший ('g'
).
load ionosphere
Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 15%-ю выборку затяжки для набора тестов.
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
Обучите бинарную модель классификации ядер использование набора обучающих данных.
Mdl = fitckernel(X(trainingInds,:),Y(trainingInds));
Создайте анонимную функцию, которая измеряет линейную потерю, то есть,
вес для наблюдения j, ответ j (-1 для отрицательного класса, и 1 в противном случае), и необработанный счет классификации наблюдения j.
linearloss = @(C,S,W,Cost)sum(-W.*sum(S.*C,2))/sum(W);
Пользовательские функции потерь должны быть написаны в конкретной форме. Для правил о записи пользовательской функции потерь смотрите 'аргумент пары "имя-значение" LossFun'
.
Оцените потерю классификации наборов обучающих данных и потерю классификации наборов тестов с помощью линейной функции потерь.
ceTrain = loss(Mdl,X(trainingInds,:),Y(trainingInds),'LossFun',linearloss)
ceTrain = -1.0851
ceTest = loss(Mdl,X(testInds,:),Y(testInds),'LossFun',linearloss)
ceTest = -0.7821
Mdl
— Бинарная модель классификации ядерClassificationKernel
Бинарная модель классификации ядер, заданная как объект модели ClassificationKernel
. Можно создать объект модели ClassificationKernel
с помощью fitckernel
.
Y
Метки классаМетки класса, заданные как категориальное, символ, или массив строк, логический или числовой вектор или массив ячеек из символьных векторов.
Тип данных Y
должен совпасть с типом данных Mdl.ClassNames
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Отличные классы в Y
должны быть подмножеством Mdl.ClassNames
.
Если Y
является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Длина Y
и количество наблюдений в X
должны быть равными.
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
L = loss(Mdl,X,Y,'LossFun','quadratic','Weights',weights)
возвращает взвешенную потерю классификации с помощью квадратичной функции потерь.'LossFun'
— Функция потерь'classiferror'
(значение по умолчанию) | 'binodeviance'
| 'exponential'
| 'hinge'
| 'logit'
| 'mincost'
| 'quadratic'
| указатель на функциюФункция потерь, заданная как пара, разделенная запятой, состоящая из 'LossFun'
и встроенного имени функции потерь или указателя на функцию.
Эта таблица приводит доступные функции потерь. Задайте тот с помощью его соответствующего значения.
Значение | Описание |
---|---|
'binodeviance' | Биномиальное отклонение |
'classiferror' | Ошибка классификации |
'exponential' | Экспоненциал |
'hinge' | Стержень |
'logit' | Логистический |
'mincost' | Минимальный ожидал стоимость misclassification (для очков классификации, которые являются апостериорными вероятностями), |
'quadratic' | Квадратичный |
'mincost'
подходит для очков классификации, которые являются апостериорными вероятностями. Для моделей классификации ядер ученики логистической регрессии возвращают апостериорные вероятности как очки классификации по умолчанию, но ученики SVM не делают (см. predict
).
Задайте свою собственную функцию при помощи обозначения указателя на функцию.
Позвольте n
быть количеством наблюдений в X
и K
быть количеством отличных классов (numel(Mdl.ClassNames)
, где Mdl
является входной моделью). Ваша функция должна иметь эту подпись:
lossvalue = lossfun
(C,S,W,Cost)
Выходным аргументом lossvalue
является скаляр.
Вы выбираете имя функции (lossfun
).
C
является n
-by-K
логическая матрица со строками, указывающими на класс, которому принадлежит соответствующее наблюдение. Порядок следования столбцов соответствует порядку класса в Mdl.ClassNames
.
Создайте C
установкой C(p,q) = 1
, если наблюдение p
находится в классе q
для каждой строки. Установите все другие элементы строки p
к 0
.
S
является n
-by-K
числовая матрица очков классификации. Порядок следования столбцов соответствует порядку класса в Mdl.ClassNames
. S
является матрицей очков классификации, подобных выводу predict
.
W
является n
-by-1 числовой вектор весов наблюдения. Если вы передаете W
, программное обеспечение нормирует веса, чтобы суммировать к 1
.
Cost
является K
-by-K
числовая матрица затрат misclassification. Например, Cost = ones(K) – eye(K)
задает стоимость 0
для правильной классификации и 1
для misclassification.
Пример: 'LossFun',@lossfun
Типы данных: char
| string
| function_handle
'Weights'
— Веса наблюденияВеса наблюдения, заданные как пара, разделенная запятой, состоящая из 'Weights'
и положительный числовой вектор длины n
, где n
является количеством наблюдений в X
. Если вы предоставляете веса, loss
вычисляет взвешенную потерю классификации.
Значением по умолчанию является
.ones(n,1)
loss
нормирует веса, чтобы суммировать до значения априорной вероятности в соответствующем классе.
Типы данных: double | single
L
Потеря классификацииПотеря классификации, возвращенная в виде числа. Интерпретация L
зависит от Weights
и LossFun
.
Функции Classification loss измеряют прогнозирующую погрешность моделей классификации. Когда вы сравниваете тот же тип потери среди многих моделей, более низкая потеря указывает на лучшую прогнозирующую модель.
Предположим следующее:
L является средневзвешенной потерей классификации.
n является объемом выборки.
yj является наблюдаемой меткой класса. Программные коды это как –1 или 1, указывая на отрицательный или положительный класс, соответственно.
f (Xj) является необработанным счетом классификации к преобразованному наблюдению (строка) j данных о предикторе X с помощью расширения функции.
mj = yj f (Xj) является счетом классификации к классификации наблюдения j в класс, соответствующий yj. Положительные значения mj указывают на правильную классификацию и не способствуют очень средней потере. Отрицательные величины mj указывают на неправильную классификацию и способствуют средней потере.
Весом для наблюдения j является wj. Программное обеспечение нормирует веса наблюдения так, чтобы они суммировали к соответствующей предшествующей вероятности класса. Программное обеспечение также нормирует априорные вероятности так, чтобы они суммировали к 1. Поэтому
Эта таблица описывает поддерживаемые функции потерь, которые можно задать при помощи аргумента пары "имя-значение" 'LossFun'
.
Функция потерь | Значение LossFun | Уравнение |
---|---|---|
Биномиальное отклонение | 'binodeviance' | |
Экспоненциальная потеря | 'exponential' | |
Ошибка классификации | 'classiferror' | Ошибка классификации является взвешенной частью неправильно классифицированных наблюдений где метка класса, соответствующая классу с максимальной апостериорной вероятностью. I {x} является функцией индикатора. |
Потеря стержня | 'hinge' | |
Потеря логита | 'logit' | |
Минимальная стоимость | 'mincost' | Программное обеспечение вычисляет взвешенную минимальную стоимость с помощью этой процедуры для наблюдений j = 1..., n.
Взвешенная, средняя, минимальная потеря стоимости |
Квадратичная потеря | 'quadratic' |
Эта фигура сравнивает функции потерь (кроме минимальной стоимости) для одного наблюдения по m. Некоторые функции нормированы, чтобы пройти [0,1].
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.