predict использование три количества, чтобы классифицировать наблюдения: апостериорная вероятность, априорная вероятность и стоимость.
predict классифицирует, чтобы минимизировать ожидаемую стоимость классификации:
где
предсказанная классификация.
K является количеством классов.
апостериорная вероятность класса k для наблюдения x.
стоимость классификации наблюдения как y, когда его истинным классом является k.
Пробел X значения делятся на области где классификация Y особое значение. Области разделяются прямыми линиями для линейного дискриминантного анализа, и коническими секциями (замещающие знаки, гиперболы или параболы) для квадратичного дискриминантного анализа. Для визуализации этих областей смотрите, Создают и Визуализируют Классификатор Дискриминантного анализа.
Апостериорная вероятность, что точка x принадлежит, чтобы классифицировать k, является продуктом априорной вероятности и многомерной нормальной плотности. Функция плотности многомерного нормального с 1 d означает, что μk и d-by-d ковариация Σk в 1 d указывают, что 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- K когда существует K классы. Вы не должны переобучать классификатор, когда вы устанавливаете новую стоимость.
Предположим, что у вас есть Nobs наблюдения, что вы хотите классифицировать с обученным классификатором дискриминантного анализа obj. Предположим, что у вас есть K классы. Вы помещаете наблюдения в матричный Xnew с одним наблюдением на строку. Команда
[label,score,cost] = predict(obj,Xnew)
возвращается, среди других выходных параметров, матрицы стоимости размера Nobs- K. Каждая строка матрицы стоимости содержит ожидаемую (среднюю) стоимость классификации наблюдения в каждый K классы. cost(n,k)
где
K является количеством классов.
апостериорная вероятность класса i для наблюдения Xnew (n).
стоимость классификации наблюдения как k, когда его истинным классом является i.