Regressão Logística
Esse é um método de modelagem matemática de uma ou mais variáveis independentes, onde a variável dependente é dicotômica, ou seja, possui apenas dois possíveis valores. Essa abordagem é especialmente útil para sistemas de classificação.
As possíveis aplicações desse tipo de regressão incluem a classificação de e-mails (spam ou não), classificação de tumores (ou outras efermidades), reconhecimento de caracteres, etc.
Hipótese (modelo)
Considerando a característica binária do problema, a saída do modelo matemático deve assumir sempre apenas dois valores, geralmente 0 e 1. Portanto, a função matemática que modela a relação entre as variáveis independentes (entrada) com a variável dependente (saída) funcionará como um limiar de classificação.
Em outras palavras, uma vez definida a hipótese do problema, ela será usada para classificação, por exemplo:
Se hθ(x )⩾0.5 , então y = 1
Se hθ(x )<0.5 , então y = 0
Usando a regressão linear para esse tipo de caso, a hipótese seria uma linha reta, como por exemplo, a reta ilustrada na figura abaixo. Nesse caso, percebe-se que os valores da reta (hipótese) estão abaixo do limiar 0.5 para todos os tumores menores que 3, enquanto que a reta terá valores maiores que 0.5 para tumores maiores que 3.
Para o caso acima, a regressão linear para determinar a fronteira entre as diferentes classes seria suficiente. Entretanto, se uma amostra de valor extremo for adicionada, a regressão linear seria distorcida, como no exemplo abaixo.
Repare que, considerando os valores de tamanho de tumor cuja a hipótese é menor que 0.5, engloba valores que serão classificados erroneamente.
Por isso, em casos como a regressão logística, a hipótese linear, ou mesmo polinomial, não é o suficiente para definir uma relação entre as variáveis independentes e a variável dependente.
Dessa forma, é preciso definir uma função para o modelo que relacione as variáveis independentes e a variável dependente, de tal forma que a classificação seja possível. Adicionalmente, essa função não deve assumir valores menores que zero, e maiores que um, dada a dicotomia do problema. A principal função usada nesse tipo de regressão é a função sigmoid:
g(z)= 1
Entretanto, a hipótese deve ser parametrizada (vetor θ), para ser calibrada durante a regressão, e deve depender das variáveis independentes (x), logo, a hipótese usada na regressão logística e da forma:
hθ(x )=g(θ
T
x)= 1
1+e−θTx
A interpretação da função acima é diferente da hipótese na regressão linear. A saída da função representa a probabilidade estimada da variável dependente assumir o valor 1 (um) para um determinado conjunto de valores das variáveis independentes. Ou seja:
hθ(x )=P( y =1∣x ;θ)
Considerando que 0 ≤ hθ(x) ≤ 1, então:
P( y=0∣x ;θ)+P( y=1∣x ;θ)=1 ou P( y=0∣x ;θ)=1−P ( y=1∣x ;θ)
Por exemplo, considere o exemplo da classificação de tumores. A variável independente é o tamanho do tumor, enquanto que a saída y será 1 se o tumor for malígno, e 0 caso contrário. Nesse caso, temos:
x=
[
x0 x1]
=[
1
tamTumor
]
Assim, uma saída hθ(x) = 0.7 para um determinado tamanho de tumor, significa que tal tumor tem
Limite de Decisão
Apesar da hipótese usada na regressão logística ser a função sigmoid, e com isso representar a probabilidade da saída y = 1, o problema ainda consiste em uma classificação, e portanto, deve ser treinada e entregar valores binário (0 ou 1).
Assim, a função hθ(x) funcionará como um limite de classificação. Uma vez calibrada com valores
de parâmetros ótimos, ao inserir valores de uma variável de entrada (p.e. o tamanho de um tumor), o modelo deve entregar um valor 0 ou 1. Dessa forma, tem-se mantida a definição:
Se hθ(x )⩾0.5 , então y = 1
Se hθ(x )<0.5 , então y = 0
Se considerarmos que a função da hipótese agora é a função sigmoid, então: y = 1 se θTx ≥ 0
y = 0 se θTx < 0
Considere, por exemplo, um problema de duas variáveis, que resultam em uma variável dependende binária, como na figura abaixo. Nesse caso, y = 1 é representado por marcadores vermelhos e y = 0 por marcadores azuis, que terão seus valores definidos a partir dos valores de x1 e x2.
Nesse caso, a hipótese possui duas variáveis independentes e, portanto, três parâmetros:
hθ(x )=g(θ0+θ1x1+θ2x2)=g (θ T x ) onde g(z)= 1 1+e−z θ=
[
θ0 θ1 θ2]
x=[
x0 x1 x2]
para x0 = 1Para ilustrar o significado da função matemática da hipótese, considere que após aplicar métodos numéricos para escolher os valores ótimos dos parâmetros (a ser discutido mais adiante), suponha que esses valores são:
θ=
[
−31 1]
Considerando a função sigmoid da hipótese, sabe-se que os valores de saída y = 1 serão estimados sempre que:
θ0+θ1x1+ θ2x2⩾0 ou seja
−3+ x1+x2⩾0 ou x1+x2⩾3
Em outras palavras, para quaisquer valores de x1 e x2 que satisfazem a equação acima, a saída será
considerada y = 1. Graficamente, podemos ilustrar essa interpretação traçando a equação acima:
Isso significa que a região do gráfico acima e a direita da reta, corresponde à região onde a hipótese irá estimar a saída y = 1, enquanto que a região abaixo e à esquerda, corresponde à região onde a hipótese irá estimar y = 0.
A reta representada acima, definida pela equação θ0+θ1x1+ θ2x2=0 é chamada de limite de
decisão (decision bondary). O objetivo da regressão logística, portanto, é estimar os valores ótimos dos parâmetros θ que separam os dados de treinamento em suas devidas classes.
Assim como na regressão linear, onde a hipótese linear pode ser substituída por uma hipótese não-linear (polinomial), a regressão logística também pode considerar funções polinomiais entre as variáveis de entrada e os parâmetros, definindo limites de decisão mais complexos.
Suponha que os dados de treinamento para um algoritmo de classificação, dependa novamente de duas variáveis independentes, onde cada uma é classificada como y = 1 (vermelho) e y = 0 (azul).
Nesse caso, o limite de decisão definido pela hipótese, não pode ser uma reta. Portanto podemos definir a hipótese como:
hθ(x )=g(θ0+θ1x1+θ2x2+ θ3x12+θ4x22)
Suponha agora que, após aplicar um algoritmo de aprendizagem, os parâmetros sejam estimados como: θ=
[
−1 0 0 1 1]
Isso significa que y = 1 se :θ0+θ1x1+ θ2x2+θ3x12+ θ4x22⩾0 ou x1 2 +x2 2 ⩾1
Formas mais complexas podem ser obtidas para essa hipótese, se polinômios de maior grau forem escolhidos, por exemplo:
hθ(x )=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x12x2+θ6x12x22+θ7x13x2+⋯)
Função Custo
Em resumo, em um problema de classificação, temos um conjunto de dados de treinamento formado por m amostras:
{(x(1), y(1)),( x(2), y(2)),(x(3 ), y(3 )),⋯,(x(m) , y(m)
)}
Onde x é um vetor de n variáveis:
x=
[
x0 x1 x2 ⋮ xn]
para x0 = 1 com y ∈{0,1}E devemos calibrar a hipótese parametrizada:
hθ(x )=g(θ
T
x)= 1
1+e−θTx
Que consiste em estimar os valores do vetor θ(n+1)x1 melhor ajustam a função ao conjunto de dados
de treinamento. O ajuste da hipótese, assim como na regressão linear, é quantificada através da função custo.
J (θ)=1 m
∑
i=1 m 1 2(hθ(x (i) )−y(i) )2 ou J (θ)=1 m∑
i=1 mcost (hθ(x ), y ) onde cost (hθ(x), y)=
1
2(hθ(x )− y ) 2
Essa função, no entanto, não deve ser usada na regressão logística, pois substituindo a função sigmoid, definida anteriormente para a hipótese, resultará em uma função J(θ) não-convexa. Tal característiva inviabiliza o uso do algoritmo de gradiente descendente, devido a presença de vários mínimos locais.
É desejável, portanto, definir uma função custo que seja convexa, possibilitando o uso do algoritmo do gradiente descendente. Um exemplo de função custo convexa, para uma hipótese sigmoid é:
cost (hθ(x), y)=
{
−log(hθ(x )) se y=1−log(1−hθ(x )) se y=0
Considerando na função acima, os casos onde as saídas nos dados de treinamento são rotulada como y = 1, a função custo terá o seguinte comportamento:
Analisando o gráfico acima, podemos avaliar o valor da função custo, que representa o erro entre a hipótese o valor real (de treinamento) para os casos onde a amostra de treinamento possui o rótulo y = 1. Nesse caso, quando a hipótese possui um valor próximo de 1, o custo da função tende a zero. Esse comportamento é desejável, pois teríamos a hipótese se aproximando do valor real. Caso a hipótese pra uma amostra específica tenha um valor próximo de zero, ou seja, muito diferente do valor real de y, então o custo tenderá a infinito. Em outras palavras, o algoritmo será penalizado para valores da hipótese que sejam muito discrepantes dos valores de treinamento.
Para os casos onde a amostra de treinamento é rotulada como y = 0, a função custo adquire um comportamento diferente, como mostrado abaixo.
Fazendo a mesma análise, vemos que o valor do custo tende a zero quando a hipótese se aproxima de zero, ou seja, quando se aproxima do valor de treinamento. Enquanto que o custo tende a infinito quando a hipótese classifica uma amostra com o rótulo 1, quando y = 0.
A função custo a ser calculada para todo o conjunto de dados de treinamento, portanto, será:
J (θ)=1
m
∑
i=1 mcost (hθ(x ), y )
onde cost (hθ(x), y )=
{
−log(hθ(x )) se y=1−log(1−hθ(x )) se y=0
para cada amostra (i)
cost (hθ(x), y)=−y⋅log(hθ(x))−(1− y)⋅log(1−hθ(x)) logo: J (θ)=−1 m
∑
i=1 m y(i)⋅log(h θ(x (i)))+(1− y(i ))⋅log(1−h θ(x (i) )) Gradiente DescendenteUma vez definida a função custo, é possível aplicar o gradiente descendente para estimar os valores do vetor θ que minimizam a função. Para isso, lembramos que o algoritmo consiste em atualizar os valores de θ, simultaneamente, a partir da equação:
θj=θj−α ∂∂θ jJ (θ)
para j = 0, 1, …, n
É preciso, portanto, calcular a derivada parcial da função custo com relação a cada um dos parâmetros. Aplicando os conhecimentos de Cálculo Diferencial e Álgebra Linear, temos que:
∂ ∂θjJ (θ)= 1 m
∑
i=1 m (hθ(x(i ) )−y(i) )x(ji) para j = 0, 1, …, n Logo θj=θj−α 1 m∑
i=1 m (hθ(x (i ) )−y(i) )x(ji) para j = 0, 1, …, nRepare que a função acima é idêntica à usada na regressão linear, ou seja, o mesmo algoritmo pode ser usado para ambos os casos. É preciso atentar, contudo, que a função da hipótese não é mais uma função linear, e sim a função sigmoid.
Classificação de Múltiplas Classes
Frequentemente, é desejável fazer a classificação em mais de duas classes (“sim” e “não”). Por se tratar de um algoritmo de classificação, podemos usá-lo para classificar um certo dado em mais de duas classes.
Uma das formas de implementar tal classificação é chamada de um-vs-todos. Nesse método, é feita uma classificação binária, como mostrado acima, para cada classe.
Nesse caso, pretende-se estimar em qual das 3 classes uma determinada amostra de duas variáveis deve ser rotulada. Para isso, dividimos o problema em 3 regressões logísticas distintas, uma para cada classe alvo, como mostrado abaixo.
Para cada classe, deve-se criar uma hipótese que a separa das demais amostras, resultando em 3 funções hθ(x):
hθ (i )
(x)=P ( y=i∣x , θ) para i = 1, 2, … , k
onde k é o número de classes. Portanto, serão necessárias k regressões logísticas, resultando k hipóteses. Após o treinamento de todas as hipóteses, para classificar uma nova amostra, basta aplicá-la à todas as hipóteses, escolhendo aquela de maior valor.