Дискриминантный анализ
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
— Использование расстояния 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
не используется для дискриминации расстоянием Mahalanobis, за исключением вычисления коэффициента ошибок.
[class,err] = classify(...)
также возвращает оценку err
misclassification коэффициента ошибок на основе данных training
. classify
возвращает очевидный коэффициент ошибок, т.е. процент наблюдений в training
, которые неправильно классифицируются, взвешиваются априорными вероятностями для групп.
[class,err,POSTERIOR] = classify(...)
также возвращает матричный POSTERIOR
оценок апостериорных вероятностей, что j th учебная группа был источником i th демонстрационное наблюдение, т.е. Pr (group j |obs i). POSTERIOR
не вычисляется для дискриминации Mahalanobis.
[class,err,POSTERIOR,logp] = classify(...)
также возвращает векторный logp
, содержащий оценки логарифмов безусловной прогнозирующей плотности вероятности демонстрационных наблюдений, p (obs i) = ∑p (obs i |group j) Pr (group j) по всем группам. logp
не вычисляется для дискриминации Mahalanobis.
[class,err,POSTERIOR,logp,coeff] = classify(...)
также возвращает массив структур coeff
, содержащий коэффициенты пограничных кривых между парами групп. Каждый элемент coeff(I,J)
содержит информацию для сравнения группы I
, чтобы сгруппировать J
в следующих полях:
ввод
Тип дискриминантной функции, от входа 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] Крзановский, W. J. Принципы многомерного анализа: перспектива пользователя. Нью-Йорк: Издательство Оксфордского университета, 1988.
[2] Seber, G. A. F. Многомерные наблюдения. Хобокен, NJ: John Wiley & Sons, Inc., 1984.