Domanda:
Perché non convalidare l'intero set di formazione?
osa
2015-01-02 22:34:46 UTC
view on stackexchange narkive permalink

Abbiamo un set di dati con 10.000 istanze etichettate manualmente e un classificatore addestrato su tutti questi dati. Il classificatore è stato quindi valutato su TUTTI questi dati per ottenere una percentuale di successo del 95%.

Cosa c'è esattamente di sbagliato in questo approccio? È solo che la statistica del 95% non è molto istruttiva in questa configurazione? Può esserci ancora un valore in questo numero del 95%? Anche se capisco che, in teoria, non è una buona idea, non ho abbastanza esperienza in questo settore per esserne sicuro da solo. Si noti inoltre che non ho né costruito né valutato il classificatore in questione.

A parte il buon senso, qualcuno potrebbe fornirmi un riferimento molto solido e autorevole, dicendo che questa configurazione è in qualche modo sbagliata?

Tutto quello che trovo su Internet sono esempi di giocattoli che dovrebbero trasmettere qualche intuizione. Qui ho un progetto di professionisti con una comprovata esperienza, quindi non posso semplicemente dire "questo è sbagliato", soprattutto perché non lo so per certo.

Ad esempio, questo pagina dice:

La valutazione delle prestazioni del modello con i dati utilizzati per l'addestramento non è accettabile nel data mining perché può facilmente generare modelli iperottimistici e sovradimensionati.

Tuttavia, questo non è certo un riferimento autorevole. In effetti, questa citazione è chiaramente sbagliata, poiché la valutazione non ha nulla a che fare con la generazione di modelli overfitted. Potrebbe generare data scientist eccessivamente ottimistici che sceglierebbero i modelli sbagliati, ma una particolare strategia di valutazione non ha nulla a che fare con i modelli overfitting di per sé.

Molte persone (a torto oa ragione) utilizzano le valutazioni del modello per selezionare il modello finale.Se è così, c'è un senso in cui una particolare strategia di valutazione (inappropriata) può generare modelli [finali] sovradimensionati.
Vorrei semplicemente sollevare i tuoi dubbi in modo più diretto.Dato che dici che sono professionisti con una comprovata esperienza, perché non chiedi loro specificamente perché non hanno utilizzato un set di test indipendente?Sospetto che sia un malinteso: forse hanno utilizzato un set di test separato e successivamente hanno addestrato tutti i dati.
@seanv507, stiamo per chiedere.Mi sto solo assicurando che non ci sia ricerca all'avanguardia nell'area della convalida sul set di formazione ...
Sebbene non sia una risposta completa alla tua domanda, forse si può trarre un po 'di intuizione considerando il seguente caso.Se un algoritmo memorizzasse in modo esplicito tutte le 10.000 istanze etichettate, avrebbe una precisione del 100% se mostrata una di queste istanze.Ma cosa farebbe con un'etichetta che non aveva mai visto prima ...
Ora che ci penso, per la natura dell'apprendimento, qualunque esso sia, qualsiasi modello ragionevole dovrebbe fare di meglio quando ha visto i dati su cui viene testato.Sarebbe davvero strano se un modello funzionasse meglio su altri set di dati del mondo reale rispetto a quello su cui è stato addestrato, e sembra statisticamente improbabile che ottenga lo stesso, diciamo, l'81% in entrambi i casi.
Sette risposte:
jpl
2015-01-02 22:51:45 UTC
view on stackexchange narkive permalink

L'argomento è semplice: quando crei un modello, vuoi che questo modello sia efficiente su dati NUOVI, NON VISTI, giusto? Altrimenti non hai bisogno di un modello.

Quindi, la metrica di valutazione, diciamo precisione e richiamo, deve dare un'idea di come si comporterà il tuo modello su dati invisibili.

Ora, se valuti sugli stessi dati che hai usato per l'addestramento, la tua precisione e il tuo richiamo saranno distorti (quasi certamente, più alti di quanto dovrebbero), perché il tuo modello ha già visto i dati.

Supponi di essere un insegnante che scrive un esame per alcuni studenti. Se vuoi valutare le loro capacità, darai loro esercizi che hanno già visto e che hanno ancora sulla scrivania, o nuovi esercizi, ispirati da ciò che hanno imparato, ma diversi da loro?

Ecco perché è sempre necessario conservare un set di test totalmente invisibile per la valutazione. (Puoi anche utilizzare la convalida incrociata, ma questa è una storia diversa).

Sì, grazie, so tutto questo.C'è qualche prova a sostegno, qualcosa che posso indicare e dire "guarda, qui quei 10 articoli su JEEE e questo video dicono tutti che questo numero del 95% è totalmente privo di significato"?
Beh, potresti semplicemente spiegare loro cosa impone il buon senso.Penso che sarebbe abbastanza difficile trovare un articolo scientifico che ritorni su queste basi, ma puoi controllare qualsiasi corso di apprendimento supervisionato, ad esempio questo, scelto a caso su Google: http://www.isys.ucl.ac.be/etudes/cours/linf2275/04classification.pdf (dalla diapositiva 68)
Se vuoi convincere qualcuno, puoi addestrare un modello che raggiunge l'errore 0 sui tuoi dati utilizzando una grande rete neurale, un vicino k-più vicino, un SVM o una foresta casuale.(O una tabella che memorizza quei dati.) Dovrebbe essere chiaro che questa non è una proprietà che sarà valida anche per i dati futuri.
La valutazione su un set di formazione si basa sulla diagnostica nel campione, come AIC, $ R ^ 2 $ ecc.
L'overfitting è certamente uno dei risultati di questo: overfitting si riferisce alla costruzione di un modello che si adatta perfettamente ai dati disponibili ma è troppo specifico per essere probabilmente utilizzato per la previsione generale di nuovi dati.Questo è esattamente quello che è.È un tipo di overfitting diverso, in un certo senso, da quello dovuto ai modelli con polinomi di grado eccessivamente alto o simili, ma si riferisce allo stesso problema.
Sì, @osa si sbaglia quando dice che non ha nulla a che fare con l'overfitting.Questa risposta dovrebbe essere corretta.
Bene, ho modificato la mia risposta e rimosso il mio ultimo commento sull'overfitting.
gung - Reinstate Monica
2015-01-02 23:54:00 UTC
view on stackexchange narkive permalink

@jpl ha fornito una buona spiegazione delle idee qui. Se quello che vuoi è solo un riferimento, userei un libro di testo solido e di base. Alcuni libri ben considerati che trattano l'idea della convalida incrociata e del motivo per cui è importante potrebbero essere:

Neil G
2015-01-03 00:59:19 UTC
view on stackexchange narkive permalink

Se convalidi sull'intero set di addestramento, il tuo modello ideale è quello che memorizza solo i dati. Niente può batterlo.

Dici che "realisticamente questo non è un modello che si limita a memorizzare i dati". Ma perché preferisci altri modelli? Questo è il punto della mia riduzione all'assurdità della validazione su tutti i dati: il motivo principale per cui non ti piace il modello che memorizza tutto ciò che ha visto è che non generalizza affatto. Cosa dovrebbe fare dato un input che non ha visto? Quindi vuoi un modello che funzioni in generale piuttosto che uno che funzioni solo su ciò che ha visto. Il modo in cui codifichi quel desiderio di lavorare bene su dati invisibili è impostare i dati di convalida in modo che siano esattamente quei dati invisibili.

Tuttavia, se sai che i tuoi esempi di addestramento rappresentano completamente la vera distribuzione, allora vai avanti e convalidare usandoli!

Inoltre, contrariamente a quanto affermato nel tuo ultimo paragrafo, la citazione che hai citato non è "chiaramente sbagliata" e quella "particolare strategia di valutazione" ha a che fare "con i modelli overfitting". Overfitting significa adattare (il rumore degli) esempi di formazione forniti piuttosto che le relazioni statistiche dei dati generali. Convalidando utilizzando i dati visualizzati, preferirai modelli che si adattano al rumore piuttosto che quelli che funzionano bene utilizzando dati invisibili.

Sì, ma realisticamente questo non è un modello che memorizza solo i dati.Questa è una sorta di classificatore standard, presumo.Potrebbe effettivamente essere un ottimo modello, solo che non lo so per certo.
Anche alcuni classificatori "standard" memorizzano i dati - o parti di essi.$ k $ -Nearest neighbors ovviamente lo fa (e niente di più);infatti, con $ k = 1 $, qualcosa deve essere terribilmente sbagliato nella tua implementazione se non riesci a ottenere il 100% sul set di addestramento.Naive Bayes non memorizza * tutti * i dati, ma estrae un enorme insieme di probabilità condizionali.Queste dovrebbero essere trattate come stime campionate con una certa incertezza, ma la convalida sull'intero set di addestramento "promuove" queste al valore esatto della popolazione.
@MattKrause, GRAZIE!Vedo.Quindi quasi tutti i classificatori binari / numerici con un parametro sintonizzabile possono essere visti come una sorta di interpolazione, con impostazioni più elevate del parametro che si adattano meglio al set su cui è addestrato.Allo stesso modo, un classificatore con più parametri sintonizzabili può essere visto come un problema di ottimizzazione sul set di addestramento, poiché l'unica cosa che possiamo fare è ottimizzare.(A meno che, ad esempio, non modifichiamo i parametri per ottenere un adattamento peggiore del 50% sul set di allenamento rispetto a quello massimo sul set di allenamento).Quindi la maggior parte dei classificatori sono interpolatori / ottimizzatori in un certo spazio.
@Neil G, vedo, quindi l'argomento per cui la convalida incrociata non è perfetta è che i dati provengono "dalla stessa distribuzione", quindi misurare la percentuale di ipotesi corrette, dimostrando che il modello prevede qualcosa, potrebbe non rappresentare l'usabilità praticadel modello nel contesto in cui vogliamo utilizzarlo.
La convalida incrociata @osa: separa (molte volte) i dati in un set di addestramento e un set di convalida.Non riutilizza i dati di addestramento per la convalida.Ho modificato la mia risposta in risposta al tuo primo commento.
Aksakal
2015-01-03 00:48:22 UTC
view on stackexchange narkive permalink

Ecco la mia semplice spiegazione.

Quando modelliamo la realtà, vogliamo che i nostri modelli siano in grado non solo di spiegare i fatti esistenti, ma anche di prevedere i nuovi fatti. Quindi, il test fuori campione serve per emulare questo obiettivo. Stimiamo (addestriamo) il modello su alcuni dati (training set), quindi proviamo a prevedere al di fuori del training set e confrontiamo le previsioni con il campione di controllo.

Ovviamente, questo è solo un esercizio di previsione, non la previsione reale, perché il campione di controllo era di fatto già osservato. Il vero test di previsione avviene solo quando si utilizza il modello sui dati, che non è stato ancora osservato. Ad esempio, hai sviluppato un programma di apprendimento automatico per la pubblicità. Solo quando inizi a usarlo nella pratica e osservi le sue prestazioni, saprai per certo se funziona o meno.

Tuttavia, nonostante la limitazione dell'approccio di formazione / controllo, è comunque informativo. Se il tuo modello funziona solo in-sample, probabilmente non è affatto un buon modello. Quindi, questo tipo di test aiuta a eliminare i modelli difettosi.

Un'altra cosa da ricordare: supponiamo che tu abbia condotto l'addestramento / la convalida del campione di controllo del modello. Tuttavia, quando si desidera utilizzare il modello, probabilmente si stimerà il modello sull'intero set di dati. In questo caso, quanto sono applicabili i risultati della convalida fuori campione del modello che è stato stimato sul campione di addestramento?

"Ovviamente, questo è solo un esercizio di predizione, non la previsione reale, perché il campione di controllo era di fatto già osservato".--- questo non è così ovvio, tra l'altro, poiché il modello non ha osservato questi dati.
@osa, ha ragione, ma il modellatore aveva i dati.Un modellatore può aver scelto il campione di controllo consciamente o inconsciamente per sostenere le sue metriche di prestazioni fuori campione, ecc. Ecco perché questo tipo di test non è un vero "test retrospettivo", dove i nuovi dati sono veramente nuovi, non lo eranot disponibile per un modellatore al momento della modellazione.
@Alsakal, buon punto sui pregiudizi subconsci.Vedo, è un tipo di pregiudizio simile a quello di riportare buone statistiche e ignorare quelle cattive.
Wayne
2015-01-03 02:30:02 UTC
view on stackexchange narkive permalink

Altri hanno risposto ai tuoi paragrafi precedenti, quindi lasciami parlare del tuo ultimo. La validità del tuo punto dipende dall'interpretazione di "valutazione". Se viene utilizzato nel senso di un'esecuzione finale su dati invisibili per dare un'idea di quanto bene ci si potrebbe aspettare che il modello scelto funzioni in futuro, il punto è corretto.

Se viene utilizzata la "valutazione" più nel senso di ciò che chiamerei un set di "test", ovvero valutare i risultati dell'addestramento di più modelli per sceglierne uno, quindi la valutazione sui dati di addestramento porterà all'overfitting.

mcstar
2015-01-06 04:18:16 UTC
view on stackexchange narkive permalink

Tutte le altre risposte (soprattutto relative all'over-fitting) sono molto buone, ma aggiungerei solo una cosa. La natura stessa degli algoritmi di apprendimento è che l'addestramento garantisce che apprendano "qualcosa" di comune sui dati a cui sono esposti. Tuttavia, ciò di cui non possiamo essere direttamente sicuri è esattamente quali caratteristiche dei dati di allenamento finiscono per apprendere. Ad esempio, con il riconoscimento delle immagini, è molto difficile essere sicuri che una rete neurale addestrata abbia appreso l'aspetto di un volto o qualcos'altro inerente alle immagini. Ad esempio, una ANN potrebbe aver appena memorizzato l'aspetto delle camicie, delle spalle o dei capelli.

Detto questo, utilizzare un set separato di dati di test (non visti dall'addestramento) è un modo per aumentare la sicurezza disporre di un modello su cui si può contare per funzionare come previsto con dati reali / invisibili. Anche aumentare il numero di campioni e la variabilità delle caratteristiche aiuta. Ciò che si intende per variabilità delle caratteristiche è che si desidera eseguire l'addestramento con dati che abbiano quante più variazioni possibili che contano ancora su ciascun campione.

Ad esempio, ancora una volta con i dati del viso, vuoi mostrare ogni volto in particolare su quanti più sfondi possibili e con il maggior numero possibile di variazioni di abbigliamento, illuminazione, colore dei capelli, angoli di ripresa ecc. Ciò contribuirà a garantire che quando la ANN dice "faccia" sia davvero una faccia e non un muro bianco sullo sfondo che ha attivato la risposta.

testuser
2015-01-03 11:15:09 UTC
view on stackexchange narkive permalink

Hastie et al hanno un buon esempio nel contesto della convalida incrociata che penso si applichi anche qui. Considera la previsione con un numero estremamente elevato di predittori sui dati in cui i predittori e i risultati sono tutti distribuiti in modo indipendente. Per amor di discussione, supponiamo che tutto sia Bernoulli con p = 0,5.

Se hai abbastanza variabili, avrai alcuni predittori che ti permettono di prevedere perfettamente i risultati. Tuttavia, sui nuovi dati, non è possibile ottenere una precisione perfetta.

Questo non è esattamente lo stesso del tuo caso, ma mostra un esempio in cui il tuo metodo può davvero portarti fuori strada .



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...