В R
, я использую lda
функцию из библиотеки, MASS
чтобы сделать классификацию. Как я понимаю LDA, входу будет присвоен ярлык , что максимизирует , верно?
Но когда я к модели, в которой я не совсем понимаю вывод , lda
Изменить: чтобы воспроизвести вывод ниже, сначала запустите:
library(MASS)
library(ISLR)
train = subset(Smarket, Year < 2005)
lda.fit = lda(Direction ~ Lag1 + Lag2, data = train)
> lda.fit Call: lda(Direction ~ Lag1 + Lag2, data = train) Prior probabilities of groups: Down Up 0.491984 0.508016 Group means: Lag1 Lag2 Down 0.04279022 0.03389409 Up -0.03954635 -0.03132544 Coefficients of linear discriminants: LD1 Lag1 -0.6420190 Lag2 -0.5135293
Я понимаю всю информацию в приведенном выше выводе, но одно, что есть LD1
? Я ищу в Интернете это, линейный дискриминантный балл ? Что это такое и зачем оно мне?
ОБНОВИТЬ
Я прочитал несколько постов (таких как этот и этот ), а также поищу в сети DA, и теперь вот что я думаю о DA или LDA.
Его можно использовать для классификации, и когда это является целью, я могу использовать байесовский подход, то есть вычислить апостериорное для каждого класса , а затем классифицировать по классу с наивысшим апостериорным , При таком подходе мне вообще не нужно обнаруживать дискриминанты, верно?
Как я читал в постах, DA или, по крайней мере, LDA в первую очередь нацелены на уменьшение размерности , для классов и пространства предикторов dim я могу проецировать dim в новое пространство пространственных объектов то есть, , можно рассматривать как преобразованный вектор признаков из исходного , и каждый является вектором, на который проецируется .
Я прав насчет приведенных выше утверждений? Если да, у меня есть следующие вопросы:
Что такое дискриминант ? Является ли каждая запись в векторе дискриминантом? Или ?
Как сделать классификацию с использованием дискриминантов?
источник
discriminant analysis
на этом сайте.Ответы:
Если вы умножаете каждое значение- 0,6420190 × + - 0.5135293 ×
LDA1
(первый линейный дискриминант) на соответствующие элементы переменных-предикторов и суммируете их ( ), вы получаете оценку для каждого респондента. Эта оценка вдоль предыдущего используется для вычисления апостериорной вероятности принадлежности к классу (для этого есть ряд различных формул). Классификация производится на основе апостериорной вероятности, при этом наблюдения прогнозируются в том классе, для которого они имеют наибольшую вероятность.Lag1
Lag2
Приведенная ниже диаграмма иллюстрирует взаимосвязь между оценкой, апостериорной вероятностью и классификацией для набора данных, использованного в вопросе. Базовые закономерности всегда выполняются с LDA из двух групп: между оценками и апостериорной вероятностью существует взаимно-однозначное сопоставление, и прогнозы эквивалентны, если они сделаны либо из апостериорных вероятностей, либо из оценок.
Ответы на подвопросы и некоторые другие комментарии
Хотя LDA можно использовать для уменьшения размеров, это не то, что происходит в примере. В двух группах причина, по которой для одного наблюдения требуется только один балл, заключается в том, что это все, что нужно. Это связано с тем, что вероятность нахождения в одной группе является дополнением к вероятности нахождения в другой (т. Е. Они добавляют к 1). Вы можете увидеть это на графике: оценки ниже -.4 классифицируются как находящиеся в группе « Вниз », а более высокие оценки прогнозируются как « Вверх» .
Иногда вектор баллов называется
discriminant function
. Иногда коэффициенты называют это. Мне не ясно, правильно ли это. Я считаю, что МАССАdiscriminant
относится к коэффициентам.Функция пакета MASS
lda
создает коэффициенты не так, как в большинстве других программ LDA. Альтернативный подход вычисляет один набор коэффициентов для каждой группы, и каждый набор коэффициентов имеет точку пересечения. С дискриминантной функцией (баллами), вычисленной с использованием этих коэффициентов, классификация основана на самом высоком балле, и нет необходимости вычислять апостериорные вероятности для прогнозирования классификации. Я поместил некоторый код LDA в GitHub, который является модификациейMASS
функции, но производит эти более удобные коэффициенты (пакет вызываетсяDisplayr/flipMultivariates
, и если вы создаете объект, используя,LDA
вы можете извлечь коэффициенты, используяobj$original$discriminant.functions
).Я разместил R для кода всех концепций в этом посте здесь .
library(MASS) getAnywhere("predict.lda")
источник
I'm not clear on whether either [word use] is correct
"дискриминантная функция", иначе "дискриминант" - это извлеченная переменная - переменная, измерение. Поэтому он характеризуется как коэффициентами (весами) для оценки его по входным переменным, так и оценками, значениями. Точно как ПК в PCA. Таким образом, «дискриминантные коэффициенты» и «дискриминантные оценки» являются правильным использованием.Теория, лежащая в основе этой функции, называется «Метод дискриминации Фишера среди нескольких групп населения». Я рекомендую главу 11.6 в прикладном многомерном статистическом анализе (ISBN: 9780134995397) для справки.
источник