Frontiera 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 z al fine di ottenere una forma della frontiera di decisione più complessa:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Proprio 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, x2);
- Termini di interazione (ad esempio, x1⋅x2 se ci sono più variabili).
Ad esempio, se X ha originariamente due variabili: [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 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.
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
Awesome!
Completion rate improved to 4.17
Frontiera 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 z al fine di ottenere una forma della frontiera di decisione più complessa:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Proprio 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, x2);
- Termini di interazione (ad esempio, x1⋅x2 se ci sono più variabili).
Ad esempio, se X ha originariamente due variabili: [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 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.
Grazie per i tuoi commenti!