Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Fronteira de Decisão | Regressão Logística
Classificação com Python

bookFronteira 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 zz e obter uma forma de fronteira de decisão mais complexa:

z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1^2 + \beta_4 x_1 x_2 + \beta_5 x_2^2

Assim 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, x2x^2);
  • Termos de interação (por exemplo, x1x2x_1 \cdot x_2 se houver múltiplas variáveis).

Por exemplo, se X originalmente possui duas variáveis: [x1,x2][x_1, x_2], então após aplicar PolynomialFeatures(2, include_bias=False), você obtém: [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

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.

question mark

Por que seria necessário usar variáveis polinomiais na Regressão Logística?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

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

bookFronteira 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 zz e obter uma forma de fronteira de decisão mais complexa:

z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1^2 + \beta_4 x_1 x_2 + \beta_5 x_2^2

Assim 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, x2x^2);
  • Termos de interação (por exemplo, x1x2x_1 \cdot x_2 se houver múltiplas variáveis).

Por exemplo, se X originalmente possui duas variáveis: [x1,x2][x_1, x_2], então após aplicar PolynomialFeatures(2, include_bias=False), você obtém: [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

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.

question mark

Por que seria necessário usar variáveis polinomiais na Regressão Logística?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4
some-alt