Что такое «коэффициенты линейных дискриминантов» в LDA?

17

В R, я использую ldaфункцию из библиотеки, MASSчтобы сделать классификацию. Как я понимаю LDA, входу будет присвоен ярлык , что максимизирует , верно?ИксYп(Y|Икс)

Но когда я к модели, в которой я не совсем понимаю вывод ,

Иксзнак равно(Laграмм1,Laграмм2)
Yзнак равноDяресTяоN,
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.

  1. Его можно использовать для классификации, и когда это является целью, я могу использовать байесовский подход, то есть вычислить апостериорное для каждого класса , а затем классифицировать по классу с наивысшим апостериорным , При таком подходе мне вообще не нужно обнаруживать дискриминанты, верно?п(Y|Икс)YяИкс

  2. Как я читал в постах, DA или, по крайней мере, LDA в первую очередь нацелены на уменьшение размерности , для классов и пространства предикторов dim я могу проецировать dim в новое пространство пространственных объектов то есть, , можно рассматривать как преобразованный вектор признаков из исходного , и каждый является вектором, на который проецируется .КDDИкс(К-1)Z

    Иксзнак равно(Икс1,,,,,ИксD)Zзнак равно(Z1,,,,,ZК-1)Zязнак равновесяTИкс
    ZИксвесяИкс

Я прав насчет приведенных выше утверждений? Если да, у меня есть следующие вопросы:

  1. Что такое дискриминант ? Является ли каждая запись в векторе дискриминантом? Или ?ZяZвеся

  2. Как сделать классификацию с использованием дискриминантов?

авокадо
источник
1
У LDA есть 2 отличных этапа: извлечение и классификация. При извлечении латентные переменные, называемые дискриминантами, формируются как линейные комбинации входных переменных. Коэффициенты в этих линейных комбинациях называются дискриминантными коэффициентами; это то, о чем вы спрашиваете. На втором этапе точки данных присваиваются классам этими дискриминантами, а не исходными переменными. Чтобы узнать больше, ищите discriminant analysisна этом сайте.
ttnphns
2
Линейная оценка дискриминанта представляет собой значение точки данных дискриминанта, поэтому не путайте ее с коэффициентом дискриминанта, который похож на коэффициент регрессии. Смотрите мой подробный ответ здесь .
ttnphns
@ttnphns, спасибо, и я буду читать больше о DA. Кстати, я думал, что для классификации входных данных мне просто нужно вычислить апостериорное для всех классов, а затем выбрать класс с наивысшим апостериорным, верно? И я не понимаю, почему мне нужен для вычисления апостериорного значения. Иксп(Y|Икс)LD1
авокадо
Вы можете и можете выполнять классификацию по Байесу на основе исходных переменных. Но это не будет дискриминантный анализ. Существенная часть LDA - это уменьшение размерности, которое позволяет заменить исходные переменные-классификаторы меньшим количеством производных классификаторов, дискриминантов. Пожалуйста, прочитайте сообщения здесь, особенно мои, они подробно описывают идеи и математику LDA.
ttnphns
@ttnphns, я читаю пост, на который вы ссылались в комментарии выше ;-)
авокадо

Ответы:

5

Если вы умножаете каждое значение LDA1(первый линейный дискриминант) на соответствующие элементы переменных-предикторов и суммируете их ( ), вы получаете оценку для каждого респондента. Эта оценка вдоль предыдущего используется для вычисления апостериорной вероятности принадлежности к классу (для этого есть ряд различных формул). Классификация производится на основе апостериорной вероятности, при этом наблюдения прогнозируются в том классе, для которого они имеют наибольшую вероятность.-0.6420190×Lag1+-0.5135293×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. Таким образом, «дискриминантные коэффициенты» и «дискриминантные оценки» являются правильным использованием.
ttnphns
@ttnphns, вы используете терминологию очень ясно и однозначно. Но это не то использование, которое встречается в большинстве постов и публикаций по этой теме, и именно это я и пытался сделать. Основываясь только на значении слова, мне совершенно ясно, что «дискриминантная функция» должна относиться к математической функции (то есть, к суммированию и коэффициентам), но, опять же, мне не ясно, что это широко распространенное использование.
Тим
@Тим ссылка, которую вы разместили для кода, устарела, можете ли вы скопировать код в свой ответ, пожалуйста?
Baxx
0

Теория, лежащая в основе этой функции, называется «Метод дискриминации Фишера среди нескольких групп населения». Я рекомендую главу 11.6 в прикладном многомерном статистическом анализе (ISBN: 9780134995397) для справки.

Морган Чжу
источник