Adattarsi di proposito


8

Avrebbe senso sovralimentare un modello di proposito?

Supponiamo di avere un caso d'uso in cui so che i dati non varieranno molto rispetto ai dati di addestramento.

Sto pensando qui alla previsione del traffico, in cui lo stato del traffico segue una serie fissa di schemi

  • pendolarismo mattutino
  • attività notturna
  • e così via.

Questi schemi non cambieranno molto a meno che non ci sia un improvviso aumento degli utenti di auto o importanti cambiamenti nell'infrastruttura stradale. In questo caso, vorrei che il modello fosse il più distorto possibile rispetto ai modelli appresi nei dati attuali, supponendo che in futuro il modello e i dati saranno molto simili.


Questo sembra molto complicato, se hai la garanzia che i dati non cambieranno, potresti sovralimentare il modello e ottenere prestazioni migliori, ma suona come una cattiva idea.
user2974951

1
È. D'altra parte, ritengo che non sarebbe una cattiva idea se so che i dati non cambieranno molto. Sto scrivendo i miei pensieri qui in modo che qualcuno possa dimostrare che mi sbaglio.
Brandon,

5
Se le prestazioni predittive fuori campione del tuo modello (ad es. Su dati futuri) non sono peggiori delle prestazioni sui tuoi dati attuali, direi che tecnicamente non stai davvero superando. Ti stai adattando troppo quando stai adattando il rumore nei tuoi dati attuali e questo dovrebbe sempre portare a previsioni peggiori sui nuovi dati. Dovresti essere in grado di impostare il modello sul corretto livello di complessità utilizzando la convalida incrociata.
matteo,

2
In uno studio, è stato chiesto a un soggetto di sovrautilizzare alcuni dati, quindi hanno vinto alla lotteria. Lo studio ha concluso che un eccesso di dati è sempre una buona cosa.
Nat,

Risposte:


4

In generale non ha senso sovrautilizzare i dati di proposito. Il problema è che è difficile assicurarsi che gli schemi compaiano anche nella parte che non è inclusa nei dati. Devi affermare che ci sono modelli nei dati. Una possibilità per farlo è il concetto di stazionarietà.


Quello che descrivi mi ricorda la stazionarietà e l'ergodicità. Dal punto di vista contestuale / aziendale, supponi che le tue serie temporali seguano determinati schemi. Questi schemi sono chiamati stazionarietà o ergodicità.

Definizione di stazionarietà:

Un processo stazionario è un processo stocastico la cui distribuzione di probabilità congiunta incondizionata non cambia quando viene spostata nel tempo. Pertanto anche parametri come media e varianza non cambiano nel tempo.

Definizione ergodicità:

Un processo ergodico è un processo relativo o denotante sistemi o processi con la proprietà che, dato il tempo sufficiente, includono o incidono su tutti i punti in un dato spazio e possono essere rappresentati statisticamente da una selezione ragionevolmente ampia di punti.


Ora vuoi assicurarti che segua davvero questi determinati schemi. Puoi farlo, ad es. Con il test radice dell'unità (come Dickey-Fuller) o il test di stazionarietà (come KPSS).

Test di radice dell'unità di definizione:

H0: esiste un'unità root.

H1: non esiste una radice unità. Ciò implica nella maggior parte dei casi stazionarietà.

Definizione Test di stazionarietà:

H0: c'è stazionarietà.

H1: non c'è stazionarietà.

Ulteriori letture:

Qual è la differenza tra un test stazionario e un test radice dell'unità?


Se la serie temporale segue davvero questi schemi, la previsione e la previsione saranno "più facili da un punto di vista statistico", ad esempio è possibile applicare modelli econometrici per previsioni come ARIMA o TBATS. La mia risposta si riferisce a serie temporali univariate e anche multivariate se si dispone di stazionarietà dei dati trasversali e le radici delle unità non sono concetti comuni.


8

No, non ha senso esagerare con i dati.

Il termine overfitting si riferisce in realtà a un confronto tra i modelli: se la performance di model_a è migliore sui dati di training dati ma peggiora fuori campione rispetto a model_b , model_a è overfitting. O in altre parole: " esiste un'alternativa migliore ".

Se lo stato del traffico " non varierà affatto rispetto ai dati di addestramento", otterrete i migliori risultati possibili semplicemente memorizzando i dati di addestramento (di nuovo, non si tratta di "overfitting").

Ma "i dati non variano molto rispetto ai dati di addestramento" equivale semplicemente ad avere una rappresentazione ragionevole del modello sottostante. È qui che l'apprendimento automatico funziona meglio ( ambiente stazionario come spiegato da Ferdi ).


Okey. Quindi forse è meglio dire che aumentiamo di proposito la propensione. L'ho detto perché stavo leggendo il compromesso tra distorsione e varianza e aveva senso per me avere una propensione maggiore per il caso d'uso del traffico.
Brandon,

algoritmo + tuning ti darà i migliori risultati possibili (ottimizza il compromesso).
Laksan Nathan,

+1 ma non credo che "esista un'alternativa migliore" segue il sovradimensionamento.
kbrose,

4

Direi che ha senso esagerare con i tuoi dati, ma solo a scopo di ricerca. (Non utilizzare il modello sovradimensionato in produzione!)

Nei casi in cui i dati possono essere complessi e svolgere attività non banali, provare a sovrautilizzare un modello può essere un passo importante!

Se è possibile equipaggiare troppo un modello, significa che i dati possono essere descritti dal modello.

Se non riesci nemmeno a vestirti troppo, può darti un indizio per un'indagine:

  • i tuoi dati non sono pronti per essere modellati, quindi avresti bisogno di più preparazione dei dati / ingegneria delle funzionalità
  • il modello è troppo semplice e non può acquisire tutte le dipendenze dei dati
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.