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

Scelta delle Variabili

Scorri per mostrare il menu

Quando si lavora con molte caratteristiche, spesso non si sa quali siano rilevanti. È possibile addestrare un modello con tutte, verificare quali caratteristiche non sono utili e poi riaddestrare utilizzando solo quelle più incisive.

GoodBadFeatures

Perché rimuovere le caratteristiche dal modello?

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

Come capire se le feature sono buone o cattive?

OLS fornisce test statistici durante l'addestramento. Ogni feature 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

Quello che ci interessa è il p-value per ciascuna feature.

valori p

In breve, più basso è il valore p, maggiore è la fiducia che la caratteristica sia significativa

esempio di valori p

In statistica, si stabilisce un livello di significatività, solitamente pari a 0,05. Se il p-value di una caratteristica supera questa soglia, viene considerata non influente.

Nella pratica, p-value leggermente superiori a 0,05 possono comunque contribuire al modello. È consigliabile testare il modello sia con che senza tale caratteristica. Tuttavia, se il p-value è molto alto (>0,4), si può rimuovere 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 qui sotto (a sinistra).

ConfrontoModelli

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

Note
Nota

I piccoli dataset 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ù facile distinguere le caratteristiche realmente influenti da quelle rumorose.

Come rimuovere le caratteristiche non valide?

È sufficiente rimuovere la colonna relativa alla caratteristica 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)

E poi crea un nuovo oggetto OLS utilizzando il nuovo X_tilde:

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?

Seleziona tutte le risposte corrette

question mark

Scegli l'affermazione ERRATA.

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