O que são "coeficientes de discriminantes lineares" na LDA?

16

Em R, eu uso a ldafunção da biblioteca MASSpara fazer a classificação. Pelo que entendi LDA, a entrada x receberá o rótulo y , que maximiza p(y|x) , certo?

Mas quando ajustar o modelo, no qual

x=(Lag1,Lag2)
y=Direction,
eu não bastante compreender a saída lda,

Editar: para reproduzir a saída abaixo, execute primeiro:

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

Eu entendo todas as informações na saída acima, mas uma coisa, o que é LD1 ? Eu pesquiso na web, é uma pontuação discriminante linear ? O que é isso e por que eu preciso disso?

ATUALIZAR

Eu li vários posts (como este e este ) e também pesquise DA na Web, e agora aqui está o que penso sobre DA ou LDA.

  1. Ele pode ser usado para fazer a classificação, e quando este é o propósito, eu posso usar a abordagem de Bayes, ou seja, calcular a posterior p(y|x) para cada classe yi , e, em seguida, classificar x para a classe com o maior posterior. Por essa abordagem, não preciso descobrir os discriminantes, certo?

  2. Como eu li nas postagens, DA ou pelo menos LDA visa principalmente a redução de dimensionalidade , para classes K e espaço preditivo de D dim, posso projetar o D dim x em um novo espaço de recurso (K1) -d z , isto é,

    x=(x1,...,xD)z=(z1,...,zK1)zi=wiTx
    ,zpode ser visto como o vetor de característica transformada doxoriginal, e cadawié o vetor no qualx é projetado.

Estou certo sobre as afirmações acima? Se sim, tenho as seguintes perguntas:

  1. O que é um discriminante ? Cada entrada zi no vetor z é discriminante? Ou wi ?

  2. Como fazer a classificação usando discriminantes?

abacate
fonte
11
A LDA possui 2 estágios distintos: extração e classificação. Na extração, são formadas variáveis ​​latentes chamadas discriminantes, como combinações lineares das variáveis ​​de entrada. Os coeficientes nessas combinações lineares são chamados de coeficientes discriminantes; é sobre isso que você pergunta. No segundo estágio, os pontos de dados são atribuídos às classes por esses discriminantes, não por variáveis ​​originais. Para ler mais, pesquise discriminant analysisneste site.
ttnphns
2
A pontuação discriminante linear é o valor de um ponto de dados por um discriminante; portanto, não confunda com coeficiente discriminante, que é como um coeficiente regressivo. Veja minha resposta detalhada aqui .
ttnphns
@ttnphns, obrigado e vou ler mais sobre o DA. BTW, eu pensei que para classificar uma entrada , eu só preciso calcular o p ( y | x ) posterior para todas as classes e depois escolher a classe com a maior posterior, certo? E não vejo por que preciso de L D 1 no cálculo da posterior. Xp(y|x)LD1 1
abacate
Você pode e pode fazer a classificação da regra de Bayes com base nas variáveis ​​originais. Mas isso não será uma análise discriminante. A parte essencial do LDA é a redução da dimensionalidade, que permite substituir os classificadores-variáveis ​​originais por um número menor de classificadores derivativos, os discriminantes. Por favor, leia as postagens aqui, especialmente as minhas, elas descrevem minuciosamente as idéias e a matemática da LDA.
ttnphns
@ttnphns, estou lendo o post é ligada no comentário acima, ;-)
abacate

Respostas:

5

Se você multiplicar cada valor de LDA1(o primeiro discriminante linear) pelos elementos correspondentes das variáveis de previsão e somá-los ( + - 0,5135293 × ), obtém um score para cada entrevistado. Essa pontuação ao longo do anterior é usada para calcular a probabilidade posterior0.6420190×Lag1+0.5135293×Lag2 de participação na classe (existem várias fórmulas diferentes para isso). A classificação é feita com base na probabilidade posterior, com observações previstas na classe para a qual elas têm a maior probabilidade.

O gráfico abaixo ilustra a relação entre a pontuação, a probabilidade posterior e a classificação, para o conjunto de dados usado na pergunta. Os padrões básicos sempre são válidos para a ADL de dois grupos: existe um mapeamento 1 para 1 entre as pontuações e a probabilidade posterior, e as previsões são equivalentes quando feitas a partir das probabilidades posteriores ou das pontuações.

Escore, Probabilidade Posterior, Classificação

Respostas às sub-perguntas e alguns outros comentários

  • Embora o LDA possa ser usado para redução de dimensão, não é isso que está acontecendo no exemplo. Com dois grupos, a razão pela qual apenas uma pontuação é necessária por observação é que isso é tudo o que é necessário. Isso ocorre porque a probabilidade de estar em um grupo é o complemento da probabilidade de estar no outro (ou seja, eles adicionam a 1). Você pode ver isso no gráfico: pontuações inferiores a -.4 são classificadas como estando no grupo Para baixo e prevê-se que pontuações mais altas sejam Para cima .

  • Às vezes, o vetor de pontuações é chamado a discriminant function. Às vezes, os coeficientes são chamados assim. Não estou claro se uma delas está correta. Eu acredito que MASS discriminantse refere aos coeficientes.

  • A ldafunção do pacote MASS produz coeficientes de maneira diferente da maioria dos outros softwares LDA. A abordagem alternativa calcula um conjunto de coeficientes para cada grupo e cada conjunto de coeficientes possui um intercepto. Com a função discriminante (escores) calculada usando esses coeficientes, a classificação é baseada na pontuação mais alta e não há necessidade de calcular probabilidades posteriores para prever a classificação. Eu coloquei algum código LDA no GitHub, que é uma modificação da MASSfunção, mas produz esses coeficientes mais convenientes (o pacote é chamado Displayr/flipMultivariatese, se você criar um objeto usando, LDApoderá extrair os coeficientes usando obj$original$discriminant.functions).

  • Eu publiquei o R para codificar todos os conceitos deste post aqui .

  • Não existe uma fórmula única para calcular probabilidades posteriores a partir da pontuação. A maneira mais fácil de entender as opções é (pelo menos para mim) olhar o código-fonte, usando:

library(MASS) getAnywhere("predict.lda")

Tim
fonte
I'm not clear on whether either [word use] is correct"função discriminante", também conhecida como "discriminante", é uma variável extraída - uma variável, uma dimensão. Portanto, é caracterizado tanto pelos coeficientes (pesos) para avaliá-lo a partir das variáveis ​​de entrada quanto pelas pontuações, pelos valores. Exatamente como um PC no PCA. Portanto, "coeficientes discriminantes" e "pontuações discriminantes" são o uso correto.
ttnphns
@ttnphns, seu uso da terminologia é muito claro e inequívoco. Mas, não é o uso que aparece em grande parte das publicações e publicações sobre o assunto, que é o ponto que eu estava tentando enfatizar. Baseado apenas no significado das palavras, é bastante claro para mim que a "função discriminante" deve se referir à função matemática (ou seja, produto da soma e coeficientes), mas, novamente, não está claro para mim que esse é o uso generalizado.
Tim
@ Tim o link que você postou para o código está morto, você pode copiar o código em sua resposta, por favor?
precisa saber é
0

A teoria por trás dessa função é "O método de Fisher para discriminação entre várias populações". Eu recomendo o capítulo 11.6 na análise estatística multivariada aplicada (ISBN: 9780134995397) para referência.

Morgan Zhu
fonte