Класс: ClassificationDiscripant
Ошибка классификации путем реподституции
L = resubLoss(obj)
L = resubLoss(obj,Name,Value)
возвращает потери реституции, означающие потери, рассчитанные для данных, которые L
= resubLoss(obj
)fitcdiscr
используется для создания obj
.
возвращает статистику потерь с дополнительными опциями, заданными одним или несколькими L
= resubLoss(obj
,Name,Value
)Name,Value
аргументы в виде пар.
|
Классификатор дискриминантного анализа, полученный с использованием |
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'LossFun'
- Функция потерь'mincost'
(по умолчанию) | 'binodeviance'
| 'classiferror'
| 'exponential'
| 'hinge'
| 'logit'
| 'quadratic'
| указатель на функциюФункция потерь, заданная как разделенная разделенными запятой парами, состоящая из 'LossFun'
и встроенное имя функции потери или указатель на функцию.
В следующей таблице перечислены доступные функции потерь. Задайте один с помощью соответствующего вектора символов или строкового скаляра.
Значение | Описание |
---|---|
'binodeviance' | Биномиальное отклонение |
'classiferror' | Неверно классифицированный коэффициент в десятичных числах |
'exponential' | Экспоненциальные потери |
'hinge' | Потеря шарнира |
'logit' | Логистические потери |
'mincost' | Минимальные ожидаемые затраты на неправильную классификацию (для классификационных оценок, которые являются апостериорными вероятностями) |
'quadratic' | Квадратичные потери |
'mincost'
подходит для классификационных оценок, которые являются апостериорными вероятностями. Модели дискриминантного анализа возвращают апостериорные вероятности классификационных оценок как по умолчанию (см predict
).
Задайте свою собственную функцию, используя обозначение указателя на функцию.
Предположим, что n
количество наблюдений в X
и K
быть количеством различных классов (numel(obj.ClassNames)
). Ваша функция должна иметь эту подпись
lossvalue = lossfun
(C,S,W,Cost)
Выходной аргумент lossvalue
является скаляром.
Вы выбираете имя функции (lossfun
).
C
является n
-by- K
логическая матрица со строками, указывающими, какому классу принадлежит соответствующее наблюдение. Порядок столбцов соответствует порядку классов в obj.ClassNames
.
Конструкция C
путем установки C(p,q) = 1
если наблюдение p
находится в q классов
, для каждой строки. Установите все другие элементы строки p
на 0
.
S
является n
-by- K
числовая матрица классификационных оценок. Порядок столбцов соответствует порядку классов в obj.ClassNames
. S
является матрицей классификационных оценок, подобной выходным данным predict
.
W
является n
-by-1 числовой вектор весов наблюдений. Если вы сдаете W
программное обеспечение нормирует их в сумме к 1
.
Cost
является K -by- K
числовая матрица затрат на неправильную классификацию. Для примера, Cost = ones(K) - eye(K)
задает стоимость 0
для правильной классификации и 1
для неправильной классификации.
Задайте свою функцию, используя 'LossFun',
.@ lossfun
Для получения дополнительной информации о функциях потерь смотрите Классификационные потери.
Типы данных: char
| string
| function_handle
|
Классификационная ошибка, скаляр. Смысл ошибки зависит от значений в |
Вычислите повторно замещенную ошибку классификации для данных радужной оболочки глаза Фишера:
load fisheriris obj = fitcdiscr(meas,species); L = resubLoss(obj) L = 0.0200
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).
Апостериорная вероятность того, что x точек принадлежит классу k, является продуктом априорной вероятности и многомерной нормальной плотности. Плотность распределения многомерного нормального с 1-by-<reservedrangesplaceholder6>, средним μk и d d ковариацией Σ <reservedrangesplaceholder2> в точке 1-by-<reservedrangesplaceholder1> x,
где является определяющим, и, k, - обратная матрица.
Пусть P (k) представляет априорную вероятность k класса. Тогда апостериорная вероятность того, что x наблюдения имеет класс k,
где P (<reservedrangesplaceholder6>) является постоянной нормализацией, сумма по k P (x | k) P (<reservedrangesplaceholder0>).
Предыдущая вероятность является одним из трех вариантов:
'uniform'
- априорная вероятность k
классов на единицу превышает общее количество классов.
'empirical'
- априорная вероятность k
классов количество обучающих выборок класса
k
разделенный на общее количество обучающих выборок.
Custom - априорная вероятность k
классов является
k
первый элемент prior
вектор. Посмотрите fitcdiscr
.
После создания классификационной модели (Mdl
) можно задать предшествующее с помощью записи через точку:
Mdl.Prior = v;
где v
является вектором положительных элементов, представляющих частоту, с которой происходит каждый элемент. Вам не нужно переобучать классификатор, когда вы задаете новый предыдущий.
Матрица ожидаемых затрат на наблюдение определяется в Затратах.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.