Frontiera di Decisione
Tracciamo i risultati della Regressione Logistica. Si consideri il seguente esempio con due caratteristiche:
Una volta costruita 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, di seguito è riportato il confine decisionale della Regressione Logistica applicata ai dati sopra:
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 è mostrato un confine di decisione per un dataset leggermente diverso. Qui i dati non sono linearmente separabili; di conseguenza, le previsioni effettuate dalla Regressione Logistica sono imperfette. Sfortunatamente, per impostazione predefinita, la Regressione Logistica non può prevedere confini di decisione più complessi, quindi questa è la migliore previsione che possiamo ottenere.
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 z al fine di ottenere una forma del confine di decisione più complessa:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Proprio come nella Regressione Polinomiale, è possibile utilizzare il trasformatore PolynomialFeatures per aggiungere termini polinomiali alle nostre feature - questo aiuta il modello ad apprendere 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, x2);
- Termini di interazione (ad esempio, x1⋅x2 se ci sono più feature).
Ad esempio, se X ha originariamente due feature: [x1,x2], dopo aver applicato PolynomialFeatures(2, include_bias=False), si ottiene: [x1,x2,x12,x1x2,x22]
Questo consente a modelli come la Regressione Logistica di catturare relazioni non lineari e produrre confini di decisione più flessibili e curvi. 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, di solito si prova prima con gradi più bassi e si valuta attentamente il modello.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 3.33
Frontiera di Decisione
Scorri per mostrare il menu
Tracciamo i risultati della Regressione Logistica. Si consideri il seguente esempio con due caratteristiche:
Una volta costruita 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, di seguito è riportato il confine decisionale della Regressione Logistica applicata ai dati sopra:
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 è mostrato un confine di decisione per un dataset leggermente diverso. Qui i dati non sono linearmente separabili; di conseguenza, le previsioni effettuate dalla Regressione Logistica sono imperfette. Sfortunatamente, per impostazione predefinita, la Regressione Logistica non può prevedere confini di decisione più complessi, quindi questa è la migliore previsione che possiamo ottenere.
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 z al fine di ottenere una forma del confine di decisione più complessa:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Proprio come nella Regressione Polinomiale, è possibile utilizzare il trasformatore PolynomialFeatures per aggiungere termini polinomiali alle nostre feature - questo aiuta il modello ad apprendere 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, x2);
- Termini di interazione (ad esempio, x1⋅x2 se ci sono più feature).
Ad esempio, se X ha originariamente due feature: [x1,x2], dopo aver applicato PolynomialFeatures(2, include_bias=False), si ottiene: [x1,x2,x12,x1x2,x22]
Questo consente a modelli come la Regressione Logistica di catturare relazioni non lineari e produrre confini di decisione più flessibili e curvi. 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, di solito si prova prima con gradi più bassi e si valuta attentamente il modello.
Grazie per i tuoi commenti!