Domanda:
Quali sono i buoni valori RMSE?
Shishir Pandey
2013-04-17 02:03:02 UTC
view on stackexchange narkive permalink

Supponiamo che io abbia un set di dati. Eseguo qualche regressione su di esso. Ho un set di dati di test separato. Provo la regressione su questo set. Trova l'RMSE sui dati del test. Come dovrei concludere che il mio algoritmo di apprendimento ha funzionato bene, voglio dire quali proprietà dei dati dovrei esaminare per concludere che l'RMSE che ho è buono per i dati?

Ho posto questa domanda 6 anni fa, quindi la nuova domanda (posta 2 mesi fa) dovrebbe essere contrassegnata come duplicata.
Cinque risposte:
R.Astur
2013-04-17 07:01:43 UTC
view on stackexchange narkive permalink

Penso che tu abbia due diversi tipi di domande. Una cosa è quello che chiedi nel titolo: "Quali sono i buoni valori RMSE?" e un'altra cosa è come confrontare modelli con diversi set di dati utilizzando RMSE.

Per la prima, cioè la domanda nel titolo, è importante ricordare che RMSE ha la stessa unità della variabile dipendente (DV ). Significa che non esiste una soglia assoluta buona o cattiva, tuttavia puoi definirla in base al tuo DV. Per un dato che va da 0 a 1000, un RMSE di 0,7 è piccolo, ma se l'intervallo va da 0 a 1, non è più così piccolo. Tuttavia, sebbene più piccolo è l'RMSE, meglio è, puoi fare affermazioni teoriche sui livelli dell'RMSE sapendo cosa ci si aspetta dal tuo DV nel tuo campo di ricerca. Tieni presente che puoi sempre normalizzare l'RMSE.

Per la seconda domanda, cioè sul confronto di due modelli con diversi set di dati utilizzando RMSE, puoi farlo a condizione che il DV sia lo stesso in entrambi i modelli. Qui, più piccolo è, meglio è, ma ricorda che piccole differenze tra questi RMSE potrebbero non essere rilevanti o addirittura significative.

Cosa vuoi dire che puoi sempre normalizzare RMSE? Capisco il tuo punto di vista sulla gamma DV e RMSE. Ma possiamo quantificare in qualche modo in termini di deviazione standard e media di DV?
La normalizzazione di RMSE (NRMSE) può essere utile per rendere RMSE senza scala. Ad esempio, trasformandolo in percentuale: RMSE / (max (DV) -min (DV))
Quella normalizzazione non produce realmente una percentuale (es. 1 non significa niente in particolare), e non è più o meno valida di qualsiasi altra forma di normalizzazione.Dipende dalla distribuzione di quei dati.Per me, avrebbe più senso normalizzarsi con l'RMSE della media, in quanto sarebbe come dire "quale miglioramento ottengo rispetto al modello più stupido a cui riesco a pensare"?
DV significa la stessa cosa di Y?
@HammanSamuel DV significa variabile dipendente, che potrebbe essere anche meglio chiamata variabile di risposta.Una variabile dipendente può avere qualsiasi nome o notazione desideri.Se chiami la tua variabile dipendente "Y", allora sì, DV significa la stessa cosa di "Y".Se chiami la tua variabile dipendente "FluffyCats", allora no, DV non significa la stessa cosa di "Y".
Eric Peterson
2013-04-17 04:38:22 UTC
view on stackexchange narkive permalink

Il RMSE per la formazione e il vostro set di test dovrebbe essere molto simile, se avete costruito un buon modello. Se l'RMSE per il set di test è molto più alto di quello del set di addestramento, è probabile che tu abbia adattato male i dati, ovvero hai creato un modello che verifica bene nel campione, ma ha poco valore predittivo quando testato fuori campione.

È possibile che i valori RMSE sia per l'addestramento che per i test siano simili ma negativi (in un certo senso). Quindi, come capire in base alle proprietà dei dati se i valori RMSE implicano davvero che il nostro algoritmo ha imparato qualcosa?
Certo, possono essere simili ma entrambi cattivi. Stai sempre cercando di ridurre al minimo l'errore quando costruisci un modello. Solo perché non hai overfit non significa che hai costruito un buon modello, ma solo che ne hai costruito uno che funzioni costantemente sui nuovi dati. Prova a utilizzare una diversa combinazione di predittori o diversi termini di interazione o quadratiche. Se il tuo RMSE scende notevolmente e viene testato bene fuori dal campione, il vecchio modello era peggiore del nuovo. Non è certo una scienza esatta.
Se sai che il tuo modello non è over / underfitting, ma non sei sicuro che l'RMSE del tuo modello sia decente, quale metrica usi per determinarlo?Confronta l'RMSE con la deviazione standard / varianza della variabile target?
FatihAkici
2017-02-19 13:18:55 UTC
view on stackexchange narkive permalink

Anche se questo è un vecchio thread, spero che la mia risposta aiuti chiunque stia cercando una risposta alla stessa domanda.

Quando parliamo di analisi delle serie temporali, il più delle volte ci riferiamo allo studio dei modelli ARIMA (e delle sue varianti). Quindi inizierò assumendo lo stesso nella mia risposta.

Prima di tutto, come spiega il commentatore precedente R. Astur, non esiste un buon RMSE, perché dipende dalla scala, cioè dipende dalla variabile dipendente. Quindi non si può rivendicare un numero universale come un buon RMSE.

Anche se scegli misure di adattamento senza scala come MAPE o MASE, non puoi comunque rivendicare una soglia di essere buono. Questo è solo un approccio sbagliato. Non si può dire "Il mio MAPE è tale e così, quindi il mio fit / previsione è buono". Il modo in cui credo che dovresti affrontare il tuo problema è il seguente. Per prima cosa trova un paio di modelli "migliori possibili", usando una logica come il loop sugli output della funzione arima () in R, e seleziona i migliori n modelli stimati basati sul più basso RMSE o MAPE o MASE. Dato che stiamo parlando di una serie specifica e non stiamo cercando di fare un'affermazione universale, puoi scegliere una di queste misure. Ovviamente devi fare la diagnostica residua e assicurarti che i tuoi modelli migliori producano residui di rumore bianco con grafici ACF ben educati. Ora che hai alcuni buoni candidati, prova il MAPE fuori campione di ciascun modello e scegli quello con il miglior MAPE fuori campione.

Il modello risultante è il modello migliore, nel senso che:

  1. Fornisce un buon adattamento nel campione, associato a misure di errore basso e residui WN.
  2. Ed evita l'overfitting dandoti la migliore accuratezza delle previsioni fuori campione.

Ora, un punto cruciale è che è possibile stimare una serie temporale con un ARIMA (o le sue varianti) includendo un numero sufficiente di ritardi della variabile dipendente o del termine residuo. Tuttavia, il modello "migliore" che si adatta potrebbe semplicemente sovradimensionarsi e darti una precisione fuori campione notevolmente bassa, ovvero soddisfare il mio punto elenco 1 ma non 2.

In tal caso, ciò che devi fare è:

  1. Aggiungi una variabile esplicativa esogena e scegli ARIMAX,
  2. Aggiungi una variabile esplicativa endogena e scegli VAR / VECM,
  3. Oppure cambia completamente il tuo approccio ai modelli di machine learning non lineari e adattali alle tue serie temporali utilizzando un approccio di convalida incrociata. Ad esempio, adatta una rete neurale o una foresta casuale alle serie temporali. E ripeti il ​​confronto delle prestazioni nel campione e fuori dal campione. Questo è un approccio di tendenza alle serie temporali e gli articoli che ho visto applaudono i modelli di apprendimento automatico per le loro prestazioni di previsione superiori (fuori campione).

Spero che questo aiuti.

KPavan Kumar
2017-07-04 23:57:40 UTC
view on stackexchange narkive permalink

Non è possibile correggere un particolare valore di soglia per RMSE.Dobbiamo esaminare il confronto tra RMSE dei set di dati di test e di treno.Se il tuo modello è buono, il tuo RMSE dei dati di test è abbastanza simile al set di dati di addestramento.Altrimenti sotto le condizioni soddisfatte.

RMSE di prova> RMSE di treno => OVER FITTING dei dati.
RMSE del test < RMSE del treno => IN FASE DI FITTING dei dati.

GivenX
2019-06-03 15:56:57 UTC
view on stackexchange narkive permalink

Personalmente mi piace l'approccio RMSE / deviazione standard. L'intervallo è fuorviante, potresti avere una distribuzione distorta o valori anomali, mentre la deviazione standard si occupa di questo. Allo stesso modo, RMSE / media è totalmente sbagliato: cosa succede se la tua media è zero? Tuttavia, questo non aiuta a dirti se hai un buon modello o meno. Questa sfida è simile a lavorare con classificazioni binarie e chiedere "è il mio Gini dell'80% buono". Dipende. Forse eseguendo un po 'di ottimizzazione aggiuntiva o ingegnerizzazione delle funzionalità, avresti potuto costruire un modello migliore che ti dava un Gini del 90% (e convalida comunque rispetto al campione di prova). Dipende anche dal caso d'uso e dal settore. Se stavi sviluppando un punteggio di credito comportamentale, un Gini dell'80% è "abbastanza buono". Ma se stai sviluppando un nuovo punteggio di credito dell'applicazione (che ha intrinsecamente accesso a meno dati), un Gini del 60% è abbastanza buono. Immagino che quando si tratta di stabilire se il "punteggio" RMSE / std dev del tuo modello è buono o meno, devi sviluppare la tua intuizione applicandola e imparando da molti casi d'uso diversi.

Benvenuto in CV.Intendi esplicitamente RMSE diviso per la deviazione standard?In tal caso, la formattazione includendo i segni del dollaro lo renderà chiaro, ad es.$ RMSE / SD $.Il motivo per cui lo chiedo è che $ RMSE / SD $ sia un coefficiente di correlazione trasformato, che sarebbe utile espandere sulle implicazioni di questo in modo più dettagliato.
Grazie @ReneBt.Sì, mi riferisco a $ RMSE / SD $.Quindi questa è una variante del coefficiente R quadrato aggiustato.Eh.R-quadrato è anche un ottimo modo per ottenere qualche intuizione sull'abilità di un modello con un obiettivo lineare (dove 1 = perfetto, 0 = casuale, molto simile a un coefficiente di Gini per i casi d'uso di classificazione binaria).Nessuno ha ancora menzionato questo come un approccio?


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...