Дискриминантный анализ
class = classify(sample,training,group)
class = classify(sample,training,group,'type
')
class = classify(sample,training,group,'type
',prior
)
[class,err] = classify(...)
[class,err,POSTERIOR] = classify(...)
[class,err,POSTERIOR,logp] = classify(...)
[class,err,POSTERIOR,logp,coeff] = classify(...)
class = classify(sample,training,group)
классифицирует каждую строку данных в sample
в одну из групп в training
. sample
и training
должны быть матрицами с одинаковым числом столбцов. group
является сгруппированной переменной для training
. Его уникальные значения определяют группы; каждый элемент определяет группу, которой соответствует соответствующая строка training
принадлежит. group
может быть категориальной переменной, числовым вектором, символьным массивом, строковыми массивами или массивом ячеек векторов символов. training
и group
должно иметь одинаковое число строк. classify
лечит <undefined>
значения, NaN
s, пустые символьные векторы, пустые строки и <missing>
строковые значения в group
как отсутствующие значения данных и игнорирует соответствующие строки training
. Область выхода class
указывает группу, в которую входит каждая строка sample
был назначен и имеет тот же тип, что и group
.
class = classify(sample,training,group,'
позволяет вам задать тип дискриминантной функции. Задайте type
')type
внутри одинарные кавычки. type
является одним из:
linear
- Подходит к многомерной нормальной плотности для каждой группы с объединенной оценкой ковариации. Это значение по умолчанию.
diaglinear
- Подобно linear
, но с диагональной ковариацией матрицы (наивные классификаторы Байеса).
quadratic
- Подходит для многомерных нормальных плотностей с ковариационными оценками, стратифицированными по группам.
diagquadratic
- Подобно quadratic
, но с диагональной ковариацией матрицы (наивные классификаторы Байеса).
mahalanobis
- Использует расстояния Махаланобиса со стратифицированными ковариационными оценками.
class = classify(sample,training,group,'
позволяет вам задать предыдущие вероятности для групп. type
',prior
)prior
является одним из:
Числовой вектор той же длины, что и количество уникальных значений в group
(или количество уровней, определенных для group
, если group
категориальна). Если group
является числовым или категориальным, порядок prior
должны соответствовать упорядоченным значениям в group
. В противном случае порядок prior
должен соответствовать порядку первого вхождения значений в group
.
Структура 1 на 1 с полями:
prob
- Числовой вектор.
group
- Того же типа, что и group
, содержащая уникальные значения, указывающие группы, к которым относятся элементы prob
соответствуют.
Как структура, prior
может содержать группы, которые не появляются в group
. Это может быть полезно, если training
является подмножеством большого набора обучающих данных. classify
игнорирует все группы, которые появляются в структуре, но не в group
массив.
Вектор символов или строковый скаляр 'empirical'
, что указывает на то, что групповые предыдущие вероятности должны быть оценены из относительных частот группы в training
.
prior
по умолчанию задается числовой вектор с равными вероятностями, т.е. равномерное распределение. prior
не используется для различения расстояния Махаланобиса, за исключением вычисления частоты ошибок.
[class,err] = classify(...)
также возвращает оценку err
ставки ошибки неправильной классификации на основе training
данные. classify
возвращает кажущуюся частоту ошибок, т.е. процент наблюдений в training
которые неправильно классифицируются, взвешиваются предыдущими вероятностями для групп.
[class,err,POSTERIOR] = classify(...)
также возвращает матрицу POSTERIOR
из оценок апостериорных вероятностей, что j-я обучающая группа была источником i-го выборочного наблюдения, т.е. Pr (group j | obs i). POSTERIOR
не рассчитывается на дискриминацию махаланобиса.
[class,err,POSTERIOR,logp] = classify(...)
также возвращает вектор logp
содержащие оценки логарифмов безусловной прогнозирующей плотности вероятностей выборочных наблюдений, p (obs i) = ∑ p (obs i | group j) Pr (group j) по всем группам. logp
не рассчитывается на дискриминацию махаланобиса.
[class,err,POSTERIOR,logp,coeff] = classify(...)
также возвращает массив структур coeff
содержит коэффициенты граничных кривых между парами групп. Каждый элемент coeff(I,J)
содержит информацию для сравнения групповых I
для группирования J
в следующих полях:
type
- Тип дискриминантной функции, от type
вход.
name1
- Имя первой группы.
name2
- Имя второй группы.
const
- Постоянный член краевого уравнения (K)
linear
- Линейные коэффициенты граничного уравнения (L)
quadratic
- Квадратичная матрица коэффициентов граничного уравнения (Q)
Для linear
и diaglinear
типы, quadratic
поле отсутствует, а строка x
от sample
массив классифицируется в групповые I
а не групповые J
если 0 < K+x*L
. Для других типов x
классифицируется в групповые I
если 0 < K+x*L+x*Q*x'
.
fitcdiscr
функция также выполняет дискриминантный анализ. Вы можете обучить классификатор, используя fitcdiscr
функция и предсказание меток новых данных при помощи predict
функция. fitcdiscr
поддерживает перекрестную валидацию и оптимизацию гипероптимизации параметров управления и не требует, чтобы вы подгоняли классификатор каждый раз, когда вы делаете новое предсказание или изменяете предыдущие вероятности.
[1] Кржановски, У. Дж. Принципы многомерного анализа: перспектива пользователя. Нью-Йорк: Oxford University Press, 1988.
[2] Себер, Г. А. Ф. Многомерные наблюдения. Hoboken, NJ: John Wiley & Sons, Inc., 1984.