Shift di covarianza

Shift di covarianza
La modifica delle distribuzioni di varie variabili da un treno all'altro è chiamato spostamento del set di dati. Ciò può portare a vari problemi quando si prevedono valori nel modello distribuito. Shifting è disponibile in una varietà di forme. Uno dei turni è lo spostamento della covaria, che si verifica all'interno delle variabili indipendenti dei dati del treno e del test. Esamineremo in dettaglio il cambio di set di dati, tra cui la sua spiegazione, cause, identificazione e spostamento covariante.

Cosa sono la varianza e la covarianza?

La dispersione dei dati è misurata per varianza. Ci dice quanto sono distribuiti i dati attorno a un certo numero "vero" o "corretto" (tendenza centrale - una misura della quale è la media dei dati. Nell'analisi univariata, il termine varianza viene utilizzato per descrivere il comportamento di una singola variabile. La covarianza viene utilizzata nell'analisi multivariata per esaminare il comportamento congiunto di due variabili. Quando due variabili si muovono nella stessa direzione, la loro covarianza è positiva; È negativo quando si muovono in direzioni opposte.

Cosa sta spostando il set di dati?

Quando la distribuzione del tuo treno e i dati di test differisce, questo è noto come spostamento del set di dati. Poiché il modello è stato addestrato su una distribuzione e ora viene utilizzato per prevedere diverse distribuzioni di dati, risultando in una minore precisione sui dati di test, di conseguenza, è sempre necessario testare le distribuzioni dei dati del treno e del test e renderli simili come fattibili.

Tipi di spostamento dei dati

  1. Modifiche alle variabili o alle funzionalità indipendenti del set di dati: Shift covariate
  2. Modifiche nella variabile target o nella variabile dipendente nel set di dati:
    Prima Shift di probabilità
  3. Modifica nella connessione tra la variabile indipendente e target attraverso i set di dati: Concept Shift

Perché si verifica il turno di set di dati?

Bias di selezione del campione: La variazione nella distribuzione è attribuibile al fatto che i dati di formazione sono stati ottenuti tramite un metodo distorto e non rappresenta accuratamente l'ambiente operativo da cui sono stati ottenuti i dati di test.

Ambienti non stazionari: L'ambiente di formazione differisce dall'ambiente di test, tempo o spazio.

Cos'è il turno di covariata nell'apprendimento automatico?

La differenza tra le distribuzioni di set di dati di formazione e test è nota come shift covariate. Ciò significa che la formazione del set di dati viene eseguita su un tipo di distribuzione e il modello viene utilizzato per prevedere i dati di qualche altra distribuzione. Lo spostamento della covariata può indicare che il modello non può generalizzare abbastanza bene. La capacità di un modello di applicarsi a nuovi dati utilizzando le funzionalità acquisite dai dati di formazione è nota come generalizzazione. Penseresti che sarebbero venuti dalla stessa distribuzione, ma quasi non è mai così. Di conseguenza, devi mantenere aggiornati i tuoi modelli con il set di treni più recenti. Ciò è in genere causato da cambiamenti nello stato delle variabili latenti, che potrebbero essere temporali (compresi i cambiamenti nella stazionarietà di un processo temporale), spaziali o meno evidenti. È anche possibile pensarlo come vedere in una "regione" inesplorata dell'universo di dati. È un affascinante campo di ricerca perché può essere osservato in vari modi in natura. Possiamo affrontarli nello spazio dei dati mediante estrapolazione creativa, ma questo funziona raramente e alternative come la ristampa di variabili latenti o il tentativo di fare una funzione di previsione adattiva al dominio. Circostanze speciali, come le variabili del tempo stazionarie e, occasionalmente, i dati numerici puri, sono tenuti a vedere se siamo davvero usciti al di fuori del nostro spazio covariato originale. In questo scenario, possiamo calcolare lo spazio dei dati dello scafo convesso e vedere se il nostro nuovo punto dati non rientra. Naturalmente, questo è computazionalmente costoso, quindi raramente viene fatto fino a quando le nostre previsioni non sono corrette. È, ovviamente, dipendente dall'applicazione.

Esempi di spostamento covariante

Il rilevamento della deriva della covariata e di altri tipi di deriva del modello è un passo chiave per migliorare l'accuratezza del test del modello. Di seguito sono riportati alcuni esempi di spostamento della covariata nei casi di utilizzo di apprendimento automatico comune:

Classificazione delle immagini e riconoscimento facciale: Un modello potrebbe essere stato addestrato su immagini di solo poche razze di cani, ma funzionerà male quando utilizzato per prevedere razze che non erano presenti nei dati di addestramento.

Rilevamento e traduzione del linguaggio: Un modello può essere addestrato su altoparlanti con un particolare accento. Se utilizzato con il discorso con nuovi dialetti o accenti, il modello può raggiungere un alto livello di precisione con i dati di allenamento, ma diventerà inaccurato se usato con nuovi dialetti o accenti.

Assistenza sanitaria: Un modello addestrato sui dati di allenamento accessibili dai pazienti di 20 anni sarà meno accurato quando lo screening dei dati di pazienti di età pari o superiore a 60 anni.

Gestire il turno di covarianza

Lanciamo le funzionalità classificate come alla deriva nella nostra strategia per trattare con il set di dati. Tuttavia, semplicemente la rimozione di funzionalità potrebbe comportare una perdita di dati. Più tardi, possiamo semplicemente abbandonare le caratteristiche meno importanti. Di conseguenza, vengono rimosse le caratteristiche con un valore di deriva più grande di una determinata soglia. Di seguito è riportato il codice che calcola e visualizza l'importanza della caratteristica per un modello di regressione lineare.

da Sklearn.set di dati Importa make_regression
da skl
guadagnare.linear_model import linearregression
da matplotlib import pilot
X, y = make_regression (n_samples = 2000, n_features = 15, n_informative = 5, random_state = 1)
modello = linearregression ()
modello.Fit (x, y)
coef_array = modello.coef_
Per i, v in enumerate (coef_array):
Stampa ('Funzione: %0D, punteggio: %.5f ' % (i, v))
Pyplot.bar ([x per x in gamma (len (coef_array)), coef_array)
Pyplot.spettacolo()

Produzione

Funzione: 0, punteggio: 0.00000
Funzione: 1, punteggio: 0.00000
Funzione: 2, punteggio: 51.76768
Funzione: 3, punteggio: 0.00000
Funzione: 4, punteggio: 0.00000
Funzione: 5, punteggio: 0.00000
Funzione: 6, punteggio: 77.69109
Funzione: 7, punteggio: 0.00000
Funzione: 8, punteggio: 41.53725
Funzione: 9, punteggio: 0.00000
Funzione: 10, punteggio: 14.19662
Funzione: 11, punteggio: 80.91086
Funzione: 12, punteggio: -0.00000
Funzione: 13, punteggio: -0.00000
Funzione: 14, punteggio: -0.00000

Conclusione

Questo articolo ha esaminato molti concetti, ragioni e rimedi collegati al cambio di set di dati. Lo spostamento delle distribuzioni dei dati dalla formazione ai dati di test è chiamato spostamento del set di dati. Diverse condizioni di addestramento e test potrebbero spostare la covarianza tra le variabili indipendenti. Dopo aver stimato l'importanza delle funzionalità, possiamo utilizzare la caduta delle funzionalità per eliminare il cambio di set di dati.