Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Selezione delle Caratteristiche | Sezione
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Fondamenti di Apprendimento Supervisionato

bookSelezione delle Caratteristiche

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

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 caratteristiche sono buone o cattive?

Per valutare se le caratteristiche influenzano significativamente il target, è possibile calcolare i p-value per ciascuna caratteristica. Un p-value basso suggerisce che la caratteristica è statisticamente significativa.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

In sintesi, più basso è il p-value, maggiore è la fiducia che la caratteristica sia influente. Tipicamente, un p-value inferiore a 0,05 è considerato statisticamente significativo.

Nell'esempio sopra:

  • Father: (estremamente piccolo, altamente significativo)
  • Mother: (molto piccolo, altamente significativo)

Entrambe le caratteristiche sono buoni predittori per il target.

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

In pratica, valori p leggermente superiori a 0,05 possono comunque essere utili al modello. È più sicuro testare il modello con e senza tale caratteristica. Tuttavia, se il valore p è molto alto (>0,4), è possibile rimuoverlo con sicurezza.

Note
Nota

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

Nel nostro esempio, abbiamo ottenuto valori p per l'altezza della madre e la costante pari a 0,087 e 0,051. Se rimuoviamo le caratteristiche con valore p > 0,05, otterremo il risultato seguente (a sinistra).

Anche visivamente, possiamo 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 la confidenza: con più dati, diventa più facile distinguere le caratteristiche realmente influenti da quelle rumorose.

Come rimuovere le caratteristiche non rilevanti?

È sufficiente eliminare 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)

Successivamente, creare un nuovo oggetto OLS utilizzando 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 all correct answers

question mark

Scegli l'affermazione ERRATA.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 8

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookSelezione delle Caratteristiche

Scorri per mostrare il menu

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

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 caratteristiche sono buone o cattive?

Per valutare se le caratteristiche influenzano significativamente il target, è possibile calcolare i p-value per ciascuna caratteristica. Un p-value basso suggerisce che la caratteristica è statisticamente significativa.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

In sintesi, più basso è il p-value, maggiore è la fiducia che la caratteristica sia influente. Tipicamente, un p-value inferiore a 0,05 è considerato statisticamente significativo.

Nell'esempio sopra:

  • Father: (estremamente piccolo, altamente significativo)
  • Mother: (molto piccolo, altamente significativo)

Entrambe le caratteristiche sono buoni predittori per il target.

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

In pratica, valori p leggermente superiori a 0,05 possono comunque essere utili al modello. È più sicuro testare il modello con e senza tale caratteristica. Tuttavia, se il valore p è molto alto (>0,4), è possibile rimuoverlo con sicurezza.

Note
Nota

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

Nel nostro esempio, abbiamo ottenuto valori p per l'altezza della madre e la costante pari a 0,087 e 0,051. Se rimuoviamo le caratteristiche con valore p > 0,05, otterremo il risultato seguente (a sinistra).

Anche visivamente, possiamo 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 la confidenza: con più dati, diventa più facile distinguere le caratteristiche realmente influenti da quelle rumorose.

Come rimuovere le caratteristiche non rilevanti?

È sufficiente eliminare 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)

Successivamente, creare un nuovo oggetto OLS utilizzando 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 all correct answers

question mark

Scegli l'affermazione ERRATA.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 8
some-alt