- View
Vamos imaginar que temos um conjunto de dados com dois atributos, \(X_1\) e \(X_2\), e que as instâncias desse conjunto são mostradas como na figura abaixo. Ao longo do eixo x, o atributo \(X_1\) é representado, ao longo do eixo y, o atributo \(X_2\) e a cor dos pontos indica a classe à qual cada uma dessas instâncias pertence. Você concordará que um modelo linear que determina uma linha em um plano poderia nos ajudar a resolver o problema de classificação, separando as classes - uma abaixo desta linha e outra acima. Para podermos concluir desta forma, beneficiaremos da função sigmoide.

A função sigmoide é uma função popular na história da aprendizagem automática. É determinado pela equação
\(σ(x)=\frac{1}{1+e^{−x}}\)
A imagem dela se parece com a da imagem abaixo.

Gráfico da função sigmoide
Podemos notar imediatamente que esta função tem um intervalo de valores de 0 a 1. Quanto menores os valores de \(x\), mais próximo o valor desta função é de 0 e, da mesma forma, quanto maior o valor de \(x\), mais próximo o valor da função sigmoide é 1. Para \(x= 0\), o valor da função sigmoide é 0,5. Se declararmos este valor como um limiar e introduzirmos as regras:
- Se o valor da função sigmoide for maior ou igual a 0,5, associe x a uma classe positiva e
- Se o valor da função sigmoide for inferior ao limiar de 0,5, associe x à classe negativa
obteremos uma função adequada para a tarefa de classificação.
Também nos parece que quanto maiores os valores de x, mais convincente é a decisão de associar x a uma classe positiva, porque excedemos significativamente o valor limite. Também parece que quanto menores os valores de x, mais plausível é a decisão de juntar x à classe negativa, porque estamos significativamente abaixo do valor limite. Para valores de x, que estão em torno de zero, esses argumentos são mais fracos. Portanto, a função sigmoide também pode ser associada à interpretação da probabilidade de pertencer a uma classe.
Se ligarmos a função sigmoide e a equação do modelo linear, obtemos a equação do modelo de regressão logística, que em geral é
\(y=σ(X_1,X_2,...,X_n)=\frac{1}{1+e^{−(ꞵ_0+ꞵ_1X_1+ꞵ_2X_2+ꞵ_3X_3+...+ꞵ_nX_n)}}\).
Os argumentos \(X_1, X_2, ..., X_n\) denotam atributos no conjunto de dados, enquanto seus valores uu variam de 0 a 1 e, como vimos, fazem sentido para a tarefa de classificação. A esta equação podemos ainda acrescentar a seguinte interpretação geométrica: os dados são classificados abaixo ou acima da "linha" que é determinada pela equação de relação linear que inicialmente imaginámos.
Entropia cruzada
A função de erro que caracteriza a regressão logística é chamada de entropia cruzada . Vamos primeiro conhecer a intuição que está por trás dessa função, e depois vamos conhecer sua forma matemática.
Dissemos que interpretamos o valor calculado pelo modelo de regressão logística como a probabilidade de pertencer a uma das classes, e que nos guiamos pela regra de que, se esse valor exceder o limiar de 0,5, interpretamo-lo como pertencente a uma classe positiva, e se este valor for inferior a 0,5, interpretamo-lo como pertencendo a uma classe negativa. Se o valor de probabilidade for 0,5, é interpretado como pertencendo a uma classe positiva.
Calculamos a função de erro no conjunto de treinamento. Nele, sabemos para cada instância quais são as características exatas, então podemos sempre compará-las com as características que ele calculou, ou seja, eu entrei no modelo.
Suponhamos que, para três casos pertencentes a uma classe positiva, o modelo de regressão logística calculou os valores 0,94, 0,56 e 0,3, respectivamente. No primeiro caso, o valor está próximo da unidade, por isso indica uma determinada decisão do modelo. No segundo caso, este valor é menor e mais próximo do limiar de classificação, mas suficiente para uma boa decisão do modelo. No terceiro caso, o valor está abaixo do limite e faria com que o modelo cometesse um erro. Ao projetar a função de erro, queremos penalizar os cálculos do modelo que para positivo O valor é superior a 1, ou seja, fazer suas contribuições para o erro geral do modelo maior. Uma dessas funções que satisfaz a propriedade required é \(− log(x)\), cujo gráfico é mostrado na figura abaixo. Precisamos de um sinal de menos para o erro para obter um valor positivo porque o logaritmo é negativo para os valores do argumento da função que são de 0 a 1. No gráfico também podemos ver que os valores da função são pequenos para argumentos mais próximos de 1, ou seja, que os valores da função são maiores para argumentos que estão mais próximos de zero. Então, agora, em ordem, as contribuições para o erro total das instâncias extraídas serão \(− log(0,94)= 0,062\), \(− log(0,56)= 0,579\) e \(− log(0,3)= 1,203\) e exatamente a proporção de tamanho que queríamos. Também podemos registrá-los em uma tabela, da maneira que fizemos e na tarefa de regressão linear. Na primeira coluna, colocaremos o marcador de classe (o valor exato), na segunda coluna a probabilidade p calculada pelo modelo, e na terceira coluna inseriremos o valor \(− log(p)\). Observe que o nome da coluna diz \(− y ∗ log (p)\), mas como \(y = 1\), isso é o mesmo que \(− log(p)\).

Vamos agora selecionar três instâncias da classe negativa e discutir as expectativas que temos da função de erro em seu caso. Que as probabilidades, respectivamente, calculadas pelo modelo de regressão logística sejam 0,03,0,48 e 0,74. Agora, no primeiro caso, o valor do modelo é próximo de zero, então indica uma certa decisão de pertencer à classe negativa. No segundo caso, este valor está próximo do limiar de classificação, mas está abaixo dele, pelo que, mais uma vez, é suficiente que o modelo decida sobre uma classe negativa. No caso da terceira instância, o valor de probabilidade está acima do limite, então o modelo errará e classificará a instância como positiva. O que esperamos da função de erro para instâncias negativas é que sua parcela do erro total seja a mais alta possível quanto mais longe estiverem de zero. Uma dessas funções que satisfaz essa propriedade é − log(1 − p) e seu gráfico é mostrado na figura abaixo. Novamente, usamos uma função com um sinal de menos para tornar o valor de erro positivo. Agora podemos escrever os valores dessa função em uma tabela. A primeira coluna agora contém as instâncias com um valor de 0, a segunda coluna contém as probabilidades p que o modelo calculou e a última coluna contém os valores das funções de erro \(− log(1 − p)\). Como \(y = 0\) para todas as instâncias, o símbolo no nome da coluna \(−(1 − y) ∗ (1 − p)\) não muda nada.

O valor total das funções de entropia cruzada é obtido quando as contribuições de erro de todas as instâncias positivas e todas negativas são somadas (semelhante ao que fizemos na regressão linear e no problema do erro médio-quadrado). Isto está escrito no formulário
\(−\sum\limits_{i = 1}^{N}(y_i⋅log(p_i)+(1−y_i)⋅log(1−p_i))\)
onde o primeiro fator soma as contribuições dos erros das instâncias positivas, e o segundo fator contribui com os erros das instâncias negativas. O valor de yi é a característica exata da classe no conjunto de treinamento, e pi é a probabilidade calculada pelo modelo de regressão logística. Este erro é chamado de entropia cruzada binária.
Os valores de parâmetros \(β\) desconhecidos no modelo de regressão logística são encontrados selecionando o valor do parâmetro para o qual a função de erro cruzado é a menor. A técnica de descida de gradiente também pode nos ajudar neste caso.
Agora vamos conhecer um algoritmo de classificação um pouco diferente.