Дискриминантный анализ
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> значения, NaNs, пустые векторы символов, пустые строки и <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 (группа 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] Себер, Г. А. Ф. Многомерные наблюдения. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 1984.