Come posso aiutare a garantire che i dati dei test non finiscano nei dati di addestramento?


60

Supponiamo di avere qualcuno che sta costruendo un modello predittivo, ma che qualcuno non sia necessariamente esperto di principi statistici o di apprendimento automatico adeguati. Forse stiamo aiutando quella persona mentre stanno imparando, o forse quella persona sta usando una sorta di pacchetto software che richiede una conoscenza minima da usare.

Ora questa persona potrebbe benissimo riconoscere che il vero test proviene dall'accuratezza (o da qualsiasi altra metrica) su dati fuori campione . Tuttavia, la mia preoccupazione è che ci siano molte sottigliezze di cui preoccuparsi. Nel caso semplice, costruiscono il loro modello e lo valutano in base ai dati di allenamento e lo valutano in base a dati di test tenuti. Sfortunatamente a volte può essere fin troppo facile tornare indietro e modificare alcuni parametri di modellazione e controllare i risultati su quegli stessi dati di "test". A questo punto, tuttavia, i dati non sono più veri dati fuori campione e il sovradimensionamento può diventare un problema.

Un potenziale modo per risolvere questo problema sarebbe quello di suggerire di creare molti set di dati fuori campione in modo tale che ogni set di dati di test possa essere scartato dopo l'uso e non riutilizzato affatto. Ciò richiede molta gestione dei dati, in particolare che la suddivisione deve essere eseguita prima dell'analisi (quindi è necessario sapere quante suddivisioni in anticipo).

Forse un approccio più convenzionale è la validazione incrociata di k-fold. Tuttavia, in un certo senso ciò perde la distinzione tra un set di dati "training" e "testing" che ritengo possa essere utile, specialmente per coloro che stanno ancora imparando. Inoltre, non sono convinto che ciò abbia senso per tutti i tipi di modelli predittivi.

C'è un modo che ho trascurato per aiutare a superare il problema del sovradimensionamento e testare le perdite pur rimanendo un po 'chiaro per un utente inesperto?


Michael, ho chiuso un thread duplicato dal sito ML e ho unito le risposte qui. Non esitare a modificare questa domanda per riflettere eventuali modifiche che desideri apportare. Non voglio intraprenderlo per paura di cambiare inavvertitamente il tuo significato.
whuber

Questa domanda è vecchia e ha una risposta accettata, ma non riesco a togliermi dalla testa che la premessa iniziale sembra essere in conflitto. Se si tratta di esercizi di apprendimento, il modo migliore per avvicinarsi è quello di lasciarli fallire e creare un modello di overfit che successivamente non preveda bene. (Forse tieni un set di dati segreto che mostri loro l'errore dei loro modi.) Ma sembra anche che tu abbia persone non qualificate che creano modelli su cui qualcuno prenderà sul serio e agirà e stai cercando di minimizzare il danno a debita distanza. Ci sono MOLTE sottigliezze, come dici tu.
Wayne,

Risposte:


50

Hai ragione, questo è un problema significativo nell'apprendimento automatico / modellistica statistica. Essenzialmente, l'unico modo per risolvere veramente questo problema è conservare un set di test indipendente e tenerlo premuto fino a quando lo studio non è completo e usarlo per la validazione finale.

Tuttavia, inevitabilmente le persone guarderanno i risultati sul set di test e quindi cambieranno il loro modello di conseguenza; tuttavia ciò non comporterà necessariamente un miglioramento delle prestazioni di generalizzazione poiché la differenza di prestazioni di diversi modelli potrebbe essere in gran parte dovuta al particolare campione di dati di test che abbiamo. In questo caso, nel fare una scelta stiamo effettivamente superando l'errore di test.

Il modo per limitare questo è quello di rendere la varianza dell'errore del test il più piccola possibile (ovvero la variabilità nell'errore del test vedremmo se usassimo diversi campioni di dati come set di test, tratti dalla stessa distribuzione sottostante). Ciò è più semplice se possibile utilizzando un set di test di grandi dimensioni, ad esempio bootstrap o cross-validation se non sono disponibili molti dati.

Ho scoperto che questo tipo di adattamento eccessivo nella selezione del modello è molto più problematico di quanto generalmente si apprezza, soprattutto per quanto riguarda la stima delle prestazioni, vedere

GC Cawley e NLC Talbot, Over-fitting nella selezione dei modelli e conseguente errore di selezione nella valutazione delle prestazioni, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, luglio 2010 (www)

Questo tipo di problema riguarda in particolare l'uso di set di dati di riferimento, che sono stati utilizzati in molti studi e ogni nuovo studio è implicitamente influenzato dai risultati di studi precedenti, quindi è probabile che le prestazioni osservate siano una stima troppo ottimistica del vero esecuzione del metodo. Il modo in cui cerco di aggirare questo è guardare molti set di dati (quindi il metodo non è sintonizzato su un set di dati specifico) e usare anche più divisioni casuali di test / training per la stima delle prestazioni (per ridurre la varianza della stima). Tuttavia, i risultati hanno ancora bisogno di un avvertimento sul fatto che questi parametri di riferimento sono stati adattati.

Un altro esempio in cui ciò accade è nelle competizioni di machine learning con una classifica basata su un set di validazione. Inevitabilmente alcuni concorrenti continuano a armeggiare con il loro modello per salire più in alto nella classifica, ma poi finiscono in fondo alla classifica finale. La ragione di ciò è che le loro molteplici scelte hanno sovrastimato il set di validazione (imparando efficacemente le variazioni casuali nel piccolo set di validazione).

Se non riesci a mantenere un set di test statisticamente puro, temo che le due migliori opzioni siano (i) raccogliere alcuni nuovi dati per creare un nuovo set di test statisticamente puro o (ii) fare attenzione che il nuovo modello era basato su una scelta effettuata dopo aver osservato l'errore del set di test, quindi è probabile che la stima delle prestazioni abbia una distorsione ottimistica.


1
+1 Sono impressionato dal modo in cui questa risposta è informata dall'esperienza e dall'efficacia con cui risponde alla domanda.
whuber

3
applausi whuber, questo è stato il mio principale argomento di ricerca per un paio d'anni, e ho scoperto che molte procedure di selezione dei modelli ampiamente utilizzate nell'apprendimento automatico sono molto fragili, e più vengono valutate a fondo, meno sembrano funzionare. Non mi sorprenderebbe che molti metodi utilizzati nell'apprendimento automatico non funzionino meglio dei metodi più semplici più vecchi, semplicemente a causa delle procedure di selezione dei modelli distorte utilizzate durante la valutazione delle prestazioni. La domanda è davvero buona, è importante non entrare a far parte della procedura di selezione del modello da armeggiare!
Dikran Marsupial,

Molto interessante. (Ho anche annullato la domanda stessa perché la tua risposta mi ha fatto apprezzare meglio.)
whuber

2
(+1) Bella risposta. L'uso di diversi classificatori sullo stesso set di dati che porta a una misura eccessivamente ottimistica dell'accuratezza del test è stato discusso in Selezione del classificatore ottimale e bias negativo nella stima del tasso di errore: uno studio empirico sulla previsione ad alta dimensione , BMC MRM 2009, 9:85 (con alcune diapositive PDF qui ), con altre discussioni in Bias a più regole nel confronto delle regole di classificazione (Yousefi et al., Bioinformatics 2011, 27 (12): 1675).
chl

Grazie per i collegamenti ai documenti, sembrano interessanti.
Dikran Marsupial,

15

Un modo per garantire ciò è assicurarsi di aver codificato tutte le cose che fai per adattarsi al modello, anche "armeggiare". In questo modo, quando si esegue ripetutamente il processo, ad esempio tramite la convalida incrociata, si mantengono le cose coerenti tra le esecuzioni. Ciò garantisce che tutte le potenziali fonti di variazione vengano catturate dal processo di convalida incrociata.

L'altra cosa di vitale importanza è assicurarsi di disporre di un campione rappresentativo, in entrambi i set di dati. Se il tuo set di dati non è rappresentativo del tipo di dati che prevedi di utilizzare per prevedere, non c'è molto che puoi fare. Tutta la modellazione si basa sul presupposto che "l'induzione" funzioni: le cose che non abbiamo osservato si comportano come le cose che abbiamo osservato.

Come regola generale, state alla larga dalle complesse procedure di adattamento del modello a meno che (i) non sappiate cosa state facendo e (ii) non abbiate provato i metodi più semplici e scoperto che non funzionano e in che modo il metodo complesso corregge problemi con il metodo semplice. "Semplice" e "complesso" sono intesi nel senso di "semplice" o "complesso" per la persona che si adatta. Il motivo per cui è così importante è che ti consente di applicare ai risultati quello che mi piace chiamare un "sniff test". Il risultato sembra giusto? Non puoi "annusare" i risultati di una procedura che non capisci.

N>>p p Np N<p

1Nieitest=(1hii)1eitraineitrainhiiiihii=ppN>>phiip=21N×pX

hii=xiT(XTX)1xi=1Nsx2(1xi)(x2¯x¯x¯1)(1xi)=1+x~i2N

x¯=N1ixix2¯=N1ixi2sx2=x2¯x¯2x~i=xix¯sxxi1N100x~i=5hii=26100126100=7410010000126100001%10000x~=5025%

N>>p2hii=xiTEET(XTX)1EETxiEXTXΛhii=ziTΛ1zi=j=1pzji2Λjjzi=ETxixi

ke{k}test=(IkH{k})1e{k}trainH{k}=X{k}(XTX)1X{k}TX{k}N>>p

Fondamentalmente, tutto ciò si riduce all'uso di un termine di penalità, per tenere conto della differenza tra errori di addestramento e test, come BIC o AIC. In questo modo si ottiene lo stesso risultato di un set di test, tuttavia non si è costretti a buttare via informazioni potenzialmente utili. Con il BIC, stai approssimando le prove per il modello, che assomiglia matematicamente a:

p(D|MiI)=p(y1y2yN|MiI)

Mi

p(D|MiI)=p(y1|MiI)p(y2yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3yN|y1y2MiI)
==i=1Np(yi|y1yi1MiI)
log[p(D|MiI)]=i=1Nlog[p(yi|y1yi1MiI)]

Ciò suggerisce una forma di convalida incrociata, ma in cui il set di addestramento viene costantemente aggiornato, un'osservazione alla volta dal set di test, simile al filtro Kalman. Prevediamo l'osservazione successiva dal set di test utilizzando il set di training corrente, misuriamo la deviazione dal valore osservato utilizzando la probabilità log log condizionale, quindi aggiorniamo il set di training per includere la nuova osservazione. Ma si noti che questa procedura digerisce completamente tutti i dati disponibili, assicurandosi allo stesso tempo che ogni osservazione sia testata come caso "fuori campione". È anche invariante, in quanto non importa ciò che chiamate "osservazione 1" o "osservazione 10"; il risultato è lo stesso (i calcoli possono essere più facili per alcune permutazioni rispetto ad altri). Anche la funzione di perdita è "adattiva"Li=log[p(yi|y1yi1MiI)]Lii

Suggerirei che la valutazione di modelli predittivi in ​​questo modo funzionerebbe abbastanza bene.


4
+1: buoni consigli e discussioni interessanti sull'effetto leva (per set di dati di grandi dimensioni). Tendo a utilizzare insiemi di dati di piccole dimensioni, dove è probabile che si verifichi un eccesso di adattamento e in tali situazioni è spesso molto facile adattarsi eccessivamente alla probabilità marginale ("prove") e finire con un modello peggiore di quello che si inizia. Sospetto che AIC e BIC siano allo stesso modo "fragili". Essenzialmente l'ottimizzazione è la radice di tutto il male nelle statistiche, poiché ogni scelta che fai o parametri che ottimizzi sulla base di un campione finito introduce la possibilità di un adattamento eccessivo. La marginalizzazione è molto più sicura, ma generalmente computazionalmente costosa.
Dikran Marsupial,

2
+1 - specialmente sul terzo paragrafo (usa prima i metodi semplici). Ricorda il buon vecchio Pareto-Rule. Se gli studenti delle macchine lo tenessero a mente prima di pubblicare il loro tentativo insufficiente di dimostrare la superiorità del loro nuovo algoritmo allevato ...
Steffen,

8

Suppongo che l'unico modo per garantire ciò sia che qualcun altro abbia i dati del test . In una relazione cliente-consulente questo può essere gestito abbastanza facilmente: il cliente fornisce al consulente il set di formazione su cui costruire i modelli, e all'interno di questo set di formazione il consulente può dividere i dati in qualsiasi modo necessario per garantire che il sovrautilizzo non si verificano; successivamente i modelli vengono restituiti al client da utilizzare nei loro dati di test.

Per un singolo ricercatore, è logico che la migliore pratica sarebbe quindi quella di imitare questa configurazione. Ciò significherebbe dedicare alcuni dei dati da testare, dopo che è stata eseguita tutta la selezione del modello. Sfortunatamente, come dici tu, questo non è praticato da molte persone, e succede anche a persone che dovrebbero conoscere meglio!

Tuttavia, in ultima analisi, dipende da cosa viene utilizzato il modello. Se sei sempre interessato alla previsione su quel singolo set di dati, allora forse puoi equipaggiare troppo tutto ciò che ti piace? Tuttavia, se stai cercando di promuovere il tuo modello come uno che generalizza bene, o usi il modello in qualche applicazione del mondo reale, ovviamente questo ha un grande significato.

C'è un problema secondario che ho pensato di menzionare, e cioè che anche se segui correttamente tutte le procedure, puoi comunque finire con modelli che sono troppo adatti, a causa del fatto che i dati non sono veramente iid . Ad esempio, se nei dati sono presenti correlazioni temporali, se si prendono tutti i dati di allenamento dai tempi 1-3 e si esegue il test al tempo 4, è possibile che l'errore di previsione sia maggiore del previsto. In alternativa, potrebbero esserci artefatti specifici dell'esperimento, come il dispositivo di misurazione utilizzato o il pool di soggetti negli esperimenti umani, che causano una generalizzazione dei modelli peggiore del previsto.


Sì, sono consapevole del fatto che è sorprendentemente difficile creare un set di dati veramente fuori dal campione in quanto è facile finire accidentalmente con correlazioni temporali e cosa no.
Michael McGowan,

1
Alcune aziende lo fanno come una politica, implementata ad es. viewImpostando le autorizzazioni del database di conseguenza in cui alcuni team sono test-data-private e altri sono test-data-blind.
ijoseph,

6

Questa è un'ottima domanda e un problema molto sottile. Naturalmente ci sono i cattivi errori intenzionali, che derivano da qualcuno che cerca di ingannarti. Ma c'è una domanda più profonda su come evitare perdite accidentali ed evitare errori onesti.

Vorrei elencare alcune buone pratiche operative. Derivano tutti da errori onesti che ho fatto ad un certo punto:

  • Separare i dati in tre gruppi: addestrare, convalidare e testare.
  • Comprendi la configurazione del problema per poter discutere di ciò che è ragionevole e di ciò che non lo è. Comprendi il problema, molte volte un leggero fraintendimento di ciò che i dati rappresentano può portare a perdite. Ad esempio, mentre nessuno si allenerà e verificherebbe sullo stesso fotogramma di un video, è più sottile quando due fotogrammi dello stesso video rientrano in pieghe diverse, due fotogrammi dello stesso video probabilmente condividono gli stessi individui con la stessa illuminazione e così via .
  • Prestare estrema attenzione alle procedure di convalida incrociata precedentemente scritte. Ancora di più con quelli non scritti da te (LIBSVM è un grande offensore qui).
  • Ripeti ogni esperimento almeno due volte prima di segnalare qualsiasi cosa, anche se riferisci al tuo compagno di ufficio. Il controllo della versione è tuo amico, prima di eseguire un commit dell'esperimento e annotare quale versione del codice stai eseguendo.
  • Fai molta attenzione quando normalizzi i tuoi dati. Molte volte questo porta a pensare che avrai l'intero set di dati su cui vuoi testare allo stesso tempo, che spesso non è realistico.

C'era una domanda sui set di formazione / valutazione e ho dato una panoramica teorica su quello su machinelearning.stackexchange.com/a/196/114 - spiegando holdout stratificato, validazione incrociata di k-fold ed esperimenti ripetuti. Per la mia mente ignorante, questi metodi affrontano completamente la domanda di cui sopra, e il resto è solo "problema dell'insegnante". Inoltre, tutte le pratiche nel tuo elenco sembrano correggere gli "errori semplicemente sciatti, inaccettabili" e non vedo alcuna sottigliezza lì. Sono molto desideroso di capire cosa mi sto perdendo - puoi commentare?
Andreister

Concordo sul fatto che provengono tutti dalla sciattezza. Avevo anche detto che non sono affatto teorici (detto che sono operativi). Ho modificato un po 'il mio post.
carlosdc,

5

Molti punti importanti sono stati trattati nelle eccellenti risposte già fornite.

Ultimamente, ho sviluppato questa lista di controllo personale per l'indipendenza statistica dei dati di test:

  • Dividi i dati al massimo livello della gerarchia dei dati (ad es. Suddivisione in base al paziente)
  • Suddividere in modo indipendente anche per confonditori noti o sospetti, come variazioni giornaliere degli strumenti, ecc.
  • (DoE dovrebbe occuparsi della sequenza casuale di misurazioni **)
  • Tutte le fasi di calcolo che iniziano con la prima fase (generalmente pre-elaborazione) che coinvolge più di un paziente * devono essere rifatte per ciascun modello surrogato nella validazione del ricampionamento. Per valdiazione del set di test indipendente / indipendente, i pazienti devono essere separati prima di questo passaggio.
    • Questo indipendentemente dal fatto che il calcolo sia chiamato preelaborazione o sia considerato parte del modello reale.
    • Colpiti tipici: centratura media, ridimensionamento della varianza (di solito solo lieve influenza), riduzione della dimensionalità come PCA o PLS (può causare distorsioni gravi, ad esempio sottovalutare il numero di errori di un ordine di grandezza)
  • Qualsiasi tipo di ottimizzazione basata sui dati o selezione del modello richiede un altro test (esterno) per convalidare in modo indipendente il modello finale.
  • Esistono alcuni tipi di prestazioni di generalizzazione che possono essere misurate solo da determinati set di test indipendenti, ad esempio il deterioramento delle prestazioni predittive per i casi misurati in futuro (non ho a che fare con la previsione di serie temporali, ma solo con la deriva dello strumento). Ma questo richiede uno studio di validazione progettato correttamente.
  • C'è un altro tipo particolare di perdita di dati nel mio campo: facciamo spettroscopia spazialmente risolta di tessuti biologici. L'etichettatura di riferimento degli spettri di test deve essere accecata dalle informazioni spettroscopiche, anche se si è tentati di utilizzare un'analisi di cluster e quindi scoprire a quale classe appartiene ciascun cluster (che sarebbe dati di test semi-supervisionati che non lo sono indipendente).

  • Ultimo ma sicuramente non meno importante: quando codifico la validazione del ricampionamento, controllo effettivamente se gli indici calcolati nel set di dati non portano a catturare file di test da pazienti, giorni di formazione, ecc.

Si noti che la "suddivisione non eseguita per garantire l'indipendenza" e la "suddivisione prima che si verifichi qualsiasi calcolo che coinvolge più di un caso" possono anche verificarsi con test che affermano di utilizzare un set di test indipendente, e quest'ultimo anche se l'analista di dati è accecato dal riferimento dei casi di test. Questi errori non possono verificarsi se i dati del test vengono trattenuti fino alla presentazione del modello finale.

* Sto usando i pazienti come la gerarchia più in alto nei dati solo per la facilità di descrizione.
** Sono chimico analitico: la deriva dello strumento è un problema noto. In effetti, parte della convalida dei metodi di analisi chimica è determinare la frequenza con cui è necessario verificare le calibrazioni rispetto ai campioni di convalida e con quale frequenza è necessario ripetere la calibrazione.


FWIW: In pratica, mi occupo di applicazioni in cui

  • p102103
  • nrowsp
  • nbiol.replicatesnpatientsp100101102
  • a seconda del metodo di misurazione spettroscopica, tutte le righe di una, ad esempio, il paziente può essere molto simile o piuttosto dissimile perché diversi tipi di spettri hanno un rapporto segnale-rumore (errore dello strumento) che varia anche di un ordine di grandezza o giù di lì

Personalmente, devo ancora incontrare l'applicazione in cui per lo sviluppo di classificatori ottengo abbastanza casi indipendenti per consentire di mettere da parte un set di test indipendente adeguato. Pertanto, sono giunto alla conclusione che la validazione del ricampionamento correttamente eseguita è l'alternativa migliore mentre il metodo è ancora in fase di sviluppo. Alla fine dovranno essere condotti studi di validazione adeguati, ma è un enorme spreco di risorse (o i risultati non porteranno informazioni utili a causa della varianza) mentre lo sviluppo del metodo è in una fase in cui le cose cambiano ancora.


2

Se ricordo bene, alcuni dei contest di previsione (come Netflix o quelli su Kaggle) usano questo schema:

C'è un set di allenamento, con le "risposte". Esiste il set di test n. 1, per il quale il ricercatore fornisce risposte. Il ricercatore scopre il loro punteggio. Esiste il set di test n. 2, per il quale il ricercatore fornisce risposte, MA il ricercatore non trova il proprio punteggio. Il ricercatore non sa quali casi di predizione si trovano nel n. 1 e n. 2.

Ad un certo punto, il set # 2 deve diventare visibile, ma hai almeno limitato la contaminazione.


2

In alcuni casi, come i predittori basati sulla sequenza biologica, non è sufficiente garantire che i casi non compaiano in più di un set. Devi ancora preoccuparti della dipendenza tra i set.

Ad esempio, per i predittori basati su sequenza, è necessario rimuovere la ridondanza assicurando che le sequenze in set diversi (inclusi i diversi set di convalida incrociata) non condividano un alto livello di somiglianza di sequenza.


2

Direi che "k-fold cross validation" è la risposta giusta dal punto di vista teorico, ma la tua domanda sembra più su questioni organizzative e di insegnamento, quindi risponderò in modo diverso.


Quando le persone "stanno ancora imparando", spesso si pensa che stiano imparando a " applicare in modo rapido e sporco" gli algoritmi e tutte le conoscenze "extra" (motivazione del problema, preparazione del set di dati, validazione, analisi degli errori, aspetti pratici e così via) ) verrà appreso "più tardi" quando saranno "più preparati".

Questo è assolutamente sbagliato.

  1. Se vogliamo che uno studente o chiunque capisca la differenza tra un set di test e un set di allenamento, la cosa peggiore sarà dare i due set a due ragazzi diversi come se pensassimo che "in questa fase" la "conoscenza extra" è dannoso. Questo è come l'approccio a cascata nello sviluppo del software: pochi mesi di puro design, poi pochi mesi di pura codifica, poi pochi mesi di test puri e un risultato a dir poco pietoso alla fine.

  2. L'apprendimento non dovrebbe andare come una cascata. Tutte le parti dell'apprendimento - motivazione del problema, algoritmo, aspetti pratici, valutazione dei risultati - devono riunirsi, a piccoli passi. (Come approccio agile nello sviluppo del software).

Forse tutti qui hanno esaminato il ml-class.org di Andrew Ng - Vorrei mettere il suo corso come esempio di un solido stile di apprendimento "agile", per così dire, quello che non darebbe mai una domanda su "come assicurarsi che i dati dei test non finiscano nei dati di addestramento ".


Nota che potrei aver frainteso completamente la tua domanda, quindi scuse! :)


L'apprendimento per l' essere umano (cioè l'apprendimento del modello in generale) non dovrebbe andare come una cascata, ma l'apprendimento per il modello dovrebbe. Altrimenti, i bit dei dati del test verranno introdotti di nascosto nei dati di allenamento e il modello è più soggetto a un overfitting.
Michael McGowan,

E ci stavo pensando di più dalla fine del software. Un utente crea un modello che ottiene il 90% di accuratezza sull'allenamento e il 75% di accuratezza sui test. Quindi modificano alcune manopole e impostazioni nel software e ottengono una precisione dell'80% sui "test". Tornano indietro e fanno più modifiche e ottengono una precisione dell'85% sui "test". Ma questo cosiddetto set di dati "testing" non è più fuori campione e il modello è stato adattato ad esso.
Michael McGowan,

Esattamente. Questo è un problema di apprendimento umano (problema dell'insegnante, se vuoi). Dovrebbe essere rivelato al più presto, piuttosto che nascosto con mezzi artificiali per "garantire che X non
penetri

Le persone che dovrebbero conoscere meglio continueranno a fare questo errore. È possibile mitigare questo effetto in una certa misura in un pacchetto software con un flusso di lavoro che incoraggia implicitamente o esplicitamente le buone pratiche e scoraggia le cattive pratiche. Che l'essere umano debba conoscere meglio non è un motivo per ignorare il problema.
Michael McGowan,

@MichaelMcGowan - stai anche ignorando i vantaggi delle perdite - che il tuo algoritmo è stato potenzialmente migliorato utilizzando il set di test (ovvero train + test è più dati che solo treno). È davvero solo un diverso compromesso, una maggiore precisione rispetto a una migliore misurazione della precisione. Per me il primo è più importante.
probabilityislogic
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.