Fronteira de Decisão
Vamos plotar os resultados da Regressão Logística. Considere o seguinte exemplo com duas variáveis:
Após construirmos uma Regressão Logística, podemos plotar uma fronteira de decisão. Ela mostra a região de cada classe onde novas instâncias são previstas como pertencentes àquela classe. Por exemplo, aqui está a fronteira de decisão da Regressão Logística aplicada aos dados acima:
Podemos ver que a linha separa perfeitamente as duas classes aqui. Quando isso acontece, o conjunto de dados é chamado de linearmente separável. No entanto, isso nem sempre ocorre. E se o conjunto de dados fosse assim:
Acima está uma fronteira de decisão para um conjunto de dados um pouco diferente. Aqui, os dados não são linearmente separáveis; portanto, as previsões feitas pela Regressão Logística são imperfeitas. Infelizmente, por padrão, a Regressão Logística não consegue prever fronteiras de decisão mais complexas, então esta é a melhor previsão que podemos obter.
Mas lembre-se de que a Regressão Logística é derivada da Regressão Linear, que possui uma solução para o problema do modelo ser muito simples. Essa solução é a Regressão Polinomial, e podemos usar sua equação para calcular z e obter uma forma de fronteira de decisão mais complexa:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Assim como na Regressão Polinomial, podemos usar o transformador PolynomialFeatures para adicionar termos polinomiais às nossas variáveis - isso ajuda o modelo a aprender padrões mais complexos.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Esta linha transforma as variáveis de entrada originais em X adicionando:
- Termos ao quadrado (por exemplo, x2);
- Termos de interação (por exemplo, x1⋅x2 se houver múltiplas variáveis).
Por exemplo, se X originalmente possui duas variáveis: [x1,x2], então após aplicar PolynomialFeatures(2, include_bias=False), você obtém: [x1,x2,x12,x1x2,x22]
Isso permite que modelos como a Regressão Logística capturem relações não lineares e produzam fronteiras de decisão mais flexíveis e curvas. No entanto, aumentar demais o grau pode levar a um modelo que se ajusta excessivamente aos dados de treinamento - um problema conhecido como overfitting (sobreajuste). Por isso, normalmente tentamos graus menores primeiro e avaliamos o modelo cuidadosamente.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain what a decision boundary is in more detail?
How does PolynomialFeatures help Logistic Regression with non-linear data?
What is overfitting and how can I prevent it when using polynomial features?
Awesome!
Completion rate improved to 4.17
Fronteira de Decisão
Deslize para mostrar o menu
Vamos plotar os resultados da Regressão Logística. Considere o seguinte exemplo com duas variáveis:
Após construirmos uma Regressão Logística, podemos plotar uma fronteira de decisão. Ela mostra a região de cada classe onde novas instâncias são previstas como pertencentes àquela classe. Por exemplo, aqui está a fronteira de decisão da Regressão Logística aplicada aos dados acima:
Podemos ver que a linha separa perfeitamente as duas classes aqui. Quando isso acontece, o conjunto de dados é chamado de linearmente separável. No entanto, isso nem sempre ocorre. E se o conjunto de dados fosse assim:
Acima está uma fronteira de decisão para um conjunto de dados um pouco diferente. Aqui, os dados não são linearmente separáveis; portanto, as previsões feitas pela Regressão Logística são imperfeitas. Infelizmente, por padrão, a Regressão Logística não consegue prever fronteiras de decisão mais complexas, então esta é a melhor previsão que podemos obter.
Mas lembre-se de que a Regressão Logística é derivada da Regressão Linear, que possui uma solução para o problema do modelo ser muito simples. Essa solução é a Regressão Polinomial, e podemos usar sua equação para calcular z e obter uma forma de fronteira de decisão mais complexa:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Assim como na Regressão Polinomial, podemos usar o transformador PolynomialFeatures para adicionar termos polinomiais às nossas variáveis - isso ajuda o modelo a aprender padrões mais complexos.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Esta linha transforma as variáveis de entrada originais em X adicionando:
- Termos ao quadrado (por exemplo, x2);
- Termos de interação (por exemplo, x1⋅x2 se houver múltiplas variáveis).
Por exemplo, se X originalmente possui duas variáveis: [x1,x2], então após aplicar PolynomialFeatures(2, include_bias=False), você obtém: [x1,x2,x12,x1x2,x22]
Isso permite que modelos como a Regressão Logística capturem relações não lineares e produzam fronteiras de decisão mais flexíveis e curvas. No entanto, aumentar demais o grau pode levar a um modelo que se ajusta excessivamente aos dados de treinamento - um problema conhecido como overfitting (sobreajuste). Por isso, normalmente tentamos graus menores primeiro e avaliamos o modelo cuidadosamente.
Obrigado pelo seu feedback!