Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Frontiera di decisione | Regressione Logistica
Classificazione con Python

bookFrontiera di decisione

Tracciamo i risultati della Regressione Logistica. Considera il seguente esempio con due caratteristiche:

Una volta costruita una Regressione Logistica, è possibile tracciare un confine decisionale. Esso mostra la regione di ciascuna classe in cui le nuove istanze vengono previste come appartenenti a quella classe. Ad esempio, ecco il confine decisionale della Regressione Logistica applicata ai dati sopra riportati:

Si può osservare che la linea separa perfettamente le due classi in questo caso. Quando ciò accade, il dataset viene definito linearmente separabile. Tuttavia, non è sempre così. Cosa succede se il dataset fosse così:

Sopra è mostrata una frontiera di decisione per un dataset leggermente diverso. Qui i dati non sono linearmente separabili; di conseguenza, le previsioni effettuate dalla Regressione Logistica sono imperfette. Purtroppo, per impostazione predefinita, la Regressione Logistica non può prevedere frontiere di decisione più complesse, quindi questa è la migliore previsione che possiamo ottenere.

Tuttavia, ricorda che la Regressione Logistica deriva dalla Regressione Lineare, la quale dispone di una soluzione al problema di un modello troppo semplice. Questa soluzione è la Regressione Polinomiale, e possiamo utilizzare la sua equazione per calcolare zz al fine di ottenere una forma della frontiera di decisione più complessa:

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

Proprio come nella Regressione Polinomiale, possiamo utilizzare il trasformatore PolynomialFeatures per aggiungere termini polinomiali alle nostre variabili - questo aiuta il modello ad apprendere schemi più complessi.

from sklearn.preprocessing import PolynomialFeatures

X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)

Questa riga trasforma le variabili di input originali in X aggiungendo:

  • Termini quadratici (ad esempio, x2x^2);
  • Termini di interazione (ad esempio, x1x2x_1 \cdot x_2 se ci sono più variabili).

Ad esempio, se X ha originariamente due variabili: [x1,x2][x_1, x_2], dopo aver applicato PolynomialFeatures(2, include_bias=False), si ottiene: [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

Questo consente a modelli come la Regressione Logistica di catturare relazioni non lineari e produrre frontiere di decisione più flessibili e curve. Tuttavia, aumentare troppo il grado può portare a un modello che si adatta troppo bene ai dati di addestramento - un problema noto come overfitting. Per questo motivo, solitamente si prova prima con gradi più bassi e si valuta attentamente il modello.

question mark

Perché potresti aver bisogno di variabili polinomiali nella Regressione Logistica?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4.17

bookFrontiera di decisione

Scorri per mostrare il menu

Tracciamo i risultati della Regressione Logistica. Considera il seguente esempio con due caratteristiche:

Una volta costruita una Regressione Logistica, è possibile tracciare un confine decisionale. Esso mostra la regione di ciascuna classe in cui le nuove istanze vengono previste come appartenenti a quella classe. Ad esempio, ecco il confine decisionale della Regressione Logistica applicata ai dati sopra riportati:

Si può osservare che la linea separa perfettamente le due classi in questo caso. Quando ciò accade, il dataset viene definito linearmente separabile. Tuttavia, non è sempre così. Cosa succede se il dataset fosse così:

Sopra è mostrata una frontiera di decisione per un dataset leggermente diverso. Qui i dati non sono linearmente separabili; di conseguenza, le previsioni effettuate dalla Regressione Logistica sono imperfette. Purtroppo, per impostazione predefinita, la Regressione Logistica non può prevedere frontiere di decisione più complesse, quindi questa è la migliore previsione che possiamo ottenere.

Tuttavia, ricorda che la Regressione Logistica deriva dalla Regressione Lineare, la quale dispone di una soluzione al problema di un modello troppo semplice. Questa soluzione è la Regressione Polinomiale, e possiamo utilizzare la sua equazione per calcolare zz al fine di ottenere una forma della frontiera di decisione più complessa:

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

Proprio come nella Regressione Polinomiale, possiamo utilizzare il trasformatore PolynomialFeatures per aggiungere termini polinomiali alle nostre variabili - questo aiuta il modello ad apprendere schemi più complessi.

from sklearn.preprocessing import PolynomialFeatures

X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)

Questa riga trasforma le variabili di input originali in X aggiungendo:

  • Termini quadratici (ad esempio, x2x^2);
  • Termini di interazione (ad esempio, x1x2x_1 \cdot x_2 se ci sono più variabili).

Ad esempio, se X ha originariamente due variabili: [x1,x2][x_1, x_2], dopo aver applicato PolynomialFeatures(2, include_bias=False), si ottiene: [x1,x2,x12,x1x2,x22][x_1, x_{2}, x_{1}\\^{2} , x_{1} x_{2}, x_{2}\\^{2}]

Questo consente a modelli come la Regressione Logistica di catturare relazioni non lineari e produrre frontiere di decisione più flessibili e curve. Tuttavia, aumentare troppo il grado può portare a un modello che si adatta troppo bene ai dati di addestramento - un problema noto come overfitting. Per questo motivo, solitamente si prova prima con gradi più bassi e si valuta attentamente il modello.

question mark

Perché potresti aver bisogno di variabili polinomiali nella Regressione Logistica?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
some-alt