predict
использует три количества, чтобы классифицировать наблюдения: апостериорная вероятность, априорная вероятность и стоимость.
predict
классифицирует, чтобы минимизировать ожидаемую стоимость классификации:
где
предсказанная классификация.
K является количеством классов.
апостериорная вероятность класса k для наблюдения x.
стоимость классификации наблюдения как y, когда его истинным классом является k.
Пробел значений X
делится на области, где классификация Y
является особым значением. Области разделяются прямыми линиями для линейного дискриминантного анализа, и коническими секциями (замещающие знаки, гиперболы или параболы) для квадратичного дискриминантного анализа. Для визуализации этих областей смотрите, Создают и Визуализируют Классификатор Дискриминантного анализа.
Апостериорная вероятность, что точка x принадлежит, чтобы классифицировать k, является продуктом априорной вероятности и многомерной нормальной плотности. Функция плотности многомерного нормального со средним μk и ковариацией Σk в точке x
где детерминант Σk, и обратная матрица.
Позволенный P (k) представляют априорную вероятность класса k. Затем апостериорная вероятность, что наблюдение x имеет класс k,
где P (x) является постоянной нормализацией, а именно, сумма по k P (x |k) P (k).
Априорная вероятность является одним из трех вариантов:
'uniform'
— Априорная вероятность класса k
1 по общему количеству классов.
'empirical'
— Априорная вероятность класса k
является количеством учебных выборок класса k
, разделенный на общее количество учебных выборок.
Числовой вектор — априорной вероятностью класса k
является j
th элемент вектора Prior
. Смотрите fitcdiscr
.
После создания классификатора obj
можно установить предшествующую запись через точку использования:
obj.Prior = v;
где v
является вектором положительных элементов, представляющих частоту, с которой происходит каждый элемент. Вы не должны переобучать классификатор, когда вы устанавливаете новое предшествующее.
Существует два затрат, сопоставленные с классификацией дискриминантных анализов: истинная стоимость misclassification в классе и ожидаемый misclassification стоятся на наблюдение.
Cost(i,j)
является стоимостью классификации наблюдения в класс j
, если его истинным классом является i
. По умолчанию, Cost(i,j)=1
, если i~=j
и Cost(i,j)=0
, если i=j
. Другими словами, стоимостью является 0
для правильной классификации и 1
для неправильной классификации.
Можно установить любую стоимость, матрицируют вас как при создании классификатора. Передайте матрицу стоимости в паре "имя-значение" Cost
в fitcdiscr
.
После того, как вы создадите классификатор obj
, можно установить пользовательскую стоимость с помощью записи через точку:
obj.Cost = B;
B
является квадратной матрицей размера K
-by-K
, когда существуют классы K
. Вы не должны переобучать классификатор, когда вы устанавливаете новую стоимость.
Предположим, что у вас есть наблюдения Nobs
, что вы хотите классифицировать с обученным классификатором дискриминантного анализа obj
. Предположим, что у вас есть классы K
. Вы помещаете наблюдения в матричный Xnew
с одним наблюдением на строку. Команда
[label,score,cost] = predict(obj,Xnew)
возвращается, среди других выходных параметров, матрицы стоимости размера Nobs
-by-K
. Каждая строка матрицы стоимости содержит ожидаемую (среднюю) стоимость классификации наблюдения в каждый из классов K
. cost(n,k)
где
K является количеством классов.
апостериорная вероятность класса i для наблюдения Xnew (n).
стоимость классификации наблюдения как k, когда его истинным классом является i.