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

Frontiera di decisione

Scorri per mostrare il menu

Tracciamo i risultati della regressione logistica. Considera il seguente esempio con due caratteristiche:

DecisionBoundarySetup

Dopo aver costruito una regressione logistica, è possibile tracciare un confine decisionale. Questo 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:

DecisionBoundary

Possiamo 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ì:

DecisionBoundaryBad

Sopra è mostrata una boundary decisionale 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 boundary decisionali più complessi, quindi questa è la migliore previsione ottenibile.

Tuttavia, ricorda che la Regressione Logistica deriva dalla Regressione Lineare, che ha 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 boundary decisionale di forma 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
PolyDecisionBoundary

Proprio come nella Regressione Polinomiale, è possibile utilizzare il trasformatore PolynomialFeatures per aggiungere termini polinomiali alle feature: questo aiuta il modello a imparare pattern più complessi.

from sklearn.preprocessing import PolynomialFeatures

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

Questa riga trasforma le feature 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ù feature).

Ad esempio, se X ha originariamente due feature: [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 permette a modelli come la Regressione Logistica di catturare relazioni non lineari e produrre boundary decisionali più flessibili e curvi. Tuttavia, aumentare troppo il grado può portare a un modello che si adatta troppo bene ai dati di training, 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é sono necessarie le caratteristiche polinomiali nella regressione logistica?

Seleziona la risposta corretta

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

Sezione 2. Capitolo 4
some-alt