Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Scelta delle Variabili | Regressione Lineare Multipla
Regressione Lineare con Python
course content

Contenuti del Corso

Regressione Lineare con Python

Regressione Lineare con Python

1. Regressione Lineare Semplice
2. Regressione Lineare Multipla
3. Regressione Polinomiale
4. Scelta del Modello Migliore

book
Scelta delle Variabili

In molti compiti, potresti avere molte variabili che non sai se siano utili o meno. Fortunatamente, puoi addestrare un modello con tutte queste variabili, vedere quali non hanno impatto e poi riaddestrare il modello utilizzando solo quelle che risultano influenti.

Perché rimuovere variabili dal modello?

Se aggiungi una variabile al modello che non ha alcuna relazione con il target, questa introdurrà del rumore nel modello, peggiorando la previsione. Quando hai molte variabili inutili, il rumore si accumula, facendo diminuire sempre di più le prestazioni del modello.

Come capire se le variabili sono buone o cattive?

Come già sai, durante l'addestramento, la classe OLS calcola anche informazioni statistiche. Tra le altre cose, esegue un t-test per determinare se ciascuna variabile ha un impatto significativo sul target. I risultati del test possono essere trovati nella tabella summary() come mostrato di seguito:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Ciò che ci interessa è il p-value per ciascuna caratteristica.

In breve, più basso è il p-value, maggiore è la fiducia che la caratteristica sia influente.

In statistica, è necessario stabilire la soglia del p-value, chiamata livello di significatività. Solitamente viene impostata a 0,05 e, una volta che il p-value supera tale livello di significatività, si considera che la caratteristica non abbia impatto.

Tuttavia, nella pratica, le caratteristiche con un p-value leggermente superiore a 0,05 spesso migliorano comunque il modello. Pertanto, è preferibile testare il modello con e senza quella caratteristica invece di rimuoverla immediatamente, a meno che il p-value non sia davvero elevato (>0,4). In tal caso, è possibile rimuovere la caratteristica in modo sicuro.

Note
Nota

Il p-value varia da 0 a 1, quindi quando si parla di p-value basso si intende inferiore a 0,05, mentre un p-value alto solitamente significa superiore a 0,3-0,5.

Nel nostro esempio, abbiamo ottenuto p-value per l'altezza della madre e la costante rispettivamente di 0,087 e 0,051. Se rimuoviamo le feature con un p-value > 0,05, otterremo il risultato qui sotto (a sinistra).

Anche visivamente, possiamo notare che il modello con la costante (a destra) è migliore, quindi è preferibile non rimuoverla dal modello.

Note
Nota

È normale ottenere p-value relativamente alti (da 0,05 a 0,2) per feature rilevanti quando il dataset è piccolo. Il p-value indica la fiducia che la feature sia rilevante, ed è naturale che più istanze abbiamo, più è facile distinguere le feature rilevanti da quelle non significative.
Supponiamo di avere dati che mostrano che 9 persone su 10 alte che conosci mangiano mele ogni giorno. Puoi esserne certo che sia correlato? Ma se fossero 9000 su 10000? Questo ti renderebbe più sicuro.

Come rimuovere le feature non rilevanti?

È sufficiente eliminare la colonna relativa alla feature da X_tilde. Questo può essere fatto utilizzando il seguente codice:

X_tilde = X_tilde.drop(___, axis=1)

Ad esempio, per eliminare le colonne 'const' e 'Mother' si utilizza:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Successivamente, creare un nuovo oggetto OLS utilizzando il X_tilde aggiornato:

regression_model=sm.OLS(y, X_tilde)

1. Quali delle seguenti variabili dovresti MANTENERE?

2. Seleziona l'affermazione ERRATA.

question mark

Quali delle seguenti variabili dovresti MANTENERE?

Select the correct answer

question mark

Seleziona l'affermazione ERRATA.

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

course content

Contenuti del Corso

Regressione Lineare con Python

Regressione Lineare con Python

1. Regressione Lineare Semplice
2. Regressione Lineare Multipla
3. Regressione Polinomiale
4. Scelta del Modello Migliore

book
Scelta delle Variabili

In molti compiti, potresti avere molte variabili che non sai se siano utili o meno. Fortunatamente, puoi addestrare un modello con tutte queste variabili, vedere quali non hanno impatto e poi riaddestrare il modello utilizzando solo quelle che risultano influenti.

Perché rimuovere variabili dal modello?

Se aggiungi una variabile al modello che non ha alcuna relazione con il target, questa introdurrà del rumore nel modello, peggiorando la previsione. Quando hai molte variabili inutili, il rumore si accumula, facendo diminuire sempre di più le prestazioni del modello.

Come capire se le variabili sono buone o cattive?

Come già sai, durante l'addestramento, la classe OLS calcola anche informazioni statistiche. Tra le altre cose, esegue un t-test per determinare se ciascuna variabile ha un impatto significativo sul target. I risultati del test possono essere trovati nella tabella summary() come mostrato di seguito:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Ciò che ci interessa è il p-value per ciascuna caratteristica.

In breve, più basso è il p-value, maggiore è la fiducia che la caratteristica sia influente.

In statistica, è necessario stabilire la soglia del p-value, chiamata livello di significatività. Solitamente viene impostata a 0,05 e, una volta che il p-value supera tale livello di significatività, si considera che la caratteristica non abbia impatto.

Tuttavia, nella pratica, le caratteristiche con un p-value leggermente superiore a 0,05 spesso migliorano comunque il modello. Pertanto, è preferibile testare il modello con e senza quella caratteristica invece di rimuoverla immediatamente, a meno che il p-value non sia davvero elevato (>0,4). In tal caso, è possibile rimuovere la caratteristica in modo sicuro.

Note
Nota

Il p-value varia da 0 a 1, quindi quando si parla di p-value basso si intende inferiore a 0,05, mentre un p-value alto solitamente significa superiore a 0,3-0,5.

Nel nostro esempio, abbiamo ottenuto p-value per l'altezza della madre e la costante rispettivamente di 0,087 e 0,051. Se rimuoviamo le feature con un p-value > 0,05, otterremo il risultato qui sotto (a sinistra).

Anche visivamente, possiamo notare che il modello con la costante (a destra) è migliore, quindi è preferibile non rimuoverla dal modello.

Note
Nota

È normale ottenere p-value relativamente alti (da 0,05 a 0,2) per feature rilevanti quando il dataset è piccolo. Il p-value indica la fiducia che la feature sia rilevante, ed è naturale che più istanze abbiamo, più è facile distinguere le feature rilevanti da quelle non significative.
Supponiamo di avere dati che mostrano che 9 persone su 10 alte che conosci mangiano mele ogni giorno. Puoi esserne certo che sia correlato? Ma se fossero 9000 su 10000? Questo ti renderebbe più sicuro.

Come rimuovere le feature non rilevanti?

È sufficiente eliminare la colonna relativa alla feature da X_tilde. Questo può essere fatto utilizzando il seguente codice:

X_tilde = X_tilde.drop(___, axis=1)

Ad esempio, per eliminare le colonne 'const' e 'Mother' si utilizza:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Successivamente, creare un nuovo oggetto OLS utilizzando il X_tilde aggiornato:

regression_model=sm.OLS(y, X_tilde)

1. Quali delle seguenti variabili dovresti MANTENERE?

2. Seleziona l'affermazione ERRATA.

question mark

Quali delle seguenti variabili dovresti MANTENERE?

Select the correct answer

question mark

Seleziona l'affermazione ERRATA.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
some-alt