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

bookSelezione delle Caratteristiche

Quando si lavora con molte variabili, spesso non si sa quali siano rilevanti. È possibile addestrare un modello con tutte le variabili, verificare quali non sono utili e poi riaddestrare utilizzando solo quelle che hanno un impatto significativo.

Perché rimuovere variabili dal modello?

Aggiungere una variabile non correlata al target introduce rumore e peggiora le previsioni. Molte variabili inutili accumulano rumore e riducono ulteriormente la qualità del modello.

Come capire se le variabili sono buone o cattive?

OLS fornisce test statistici durante l'addestramento. Ogni variabile riceve un risultato del t-test, mostrato nella tabella summary(), che indica se influisce in modo significativo sul target.

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, si stabilisce un livello di significatività, solitamente pari a 0,05. Se il p-value di una variabile supera questa soglia, viene considerata non influente.

In pratica, p-value leggermente superiori a 0,05 possono comunque contribuire al modello. È consigliabile testare il modello sia con che senza tale variabile. Tuttavia, se il p-value è molto elevato (>0,4), è possibile rimuoverla con sicurezza.

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 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 pari a 0,087 e 0,051. Se rimuoviamo le caratteristiche con un p-value > 0,05, otterremo il risultato riportato di seguito (a sinistra).

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

Note
Nota

I dataset di piccole dimensioni spesso producono p-value più alti (0,05–0,2) anche per caratteristiche significative. I p-value riflettono il livello di confidenza: con più dati, diventa più semplice distinguere le caratteristiche realmente influenti da quelle rumorose.

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. Scegli l'affermazione ERRATA.

question mark

Quali delle seguenti variabili dovresti MANTENERE?

Select the correct answer

question mark

Scegli 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

Awesome!

Completion rate improved to 5.26

bookSelezione delle Caratteristiche

Scorri per mostrare il menu

Quando si lavora con molte variabili, spesso non si sa quali siano rilevanti. È possibile addestrare un modello con tutte le variabili, verificare quali non sono utili e poi riaddestrare utilizzando solo quelle che hanno un impatto significativo.

Perché rimuovere variabili dal modello?

Aggiungere una variabile non correlata al target introduce rumore e peggiora le previsioni. Molte variabili inutili accumulano rumore e riducono ulteriormente la qualità del modello.

Come capire se le variabili sono buone o cattive?

OLS fornisce test statistici durante l'addestramento. Ogni variabile riceve un risultato del t-test, mostrato nella tabella summary(), che indica se influisce in modo significativo sul target.

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, si stabilisce un livello di significatività, solitamente pari a 0,05. Se il p-value di una variabile supera questa soglia, viene considerata non influente.

In pratica, p-value leggermente superiori a 0,05 possono comunque contribuire al modello. È consigliabile testare il modello sia con che senza tale variabile. Tuttavia, se il p-value è molto elevato (>0,4), è possibile rimuoverla con sicurezza.

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 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 pari a 0,087 e 0,051. Se rimuoviamo le caratteristiche con un p-value > 0,05, otterremo il risultato riportato di seguito (a sinistra).

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

Note
Nota

I dataset di piccole dimensioni spesso producono p-value più alti (0,05–0,2) anche per caratteristiche significative. I p-value riflettono il livello di confidenza: con più dati, diventa più semplice distinguere le caratteristiche realmente influenti da quelle rumorose.

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. Scegli l'affermazione ERRATA.

question mark

Quali delle seguenti variabili dovresti MANTENERE?

Select the correct answer

question mark

Scegli l'affermazione ERRATA.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
some-alt