Selezione 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.
123456789import 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
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.
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.
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.
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 5.26
Selezione 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.
123456789import 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
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.
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.
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.
Grazie per i tuoi commenti!