Ricerca della griglia sulla convalida incrociata di k-fold


16

Ho un set di dati di 120 campioni in un'impostazione di convalida incrociata di 10 volte. Attualmente, seleziono i dati di allenamento del primo holdout e eseguo una convalida incrociata di 5 volte su di esso per selezionare i valori di gamma e C mediante la ricerca della griglia. Sto usando SVM con il kernel RBF. Dal momento che sto eseguendo una convalida incrociata da 10 a 10 per riportare la precisione, ricordo, eseguo questa ricerca della griglia nei dati di allenamento di ciascun controllo (ci sono 10 controlli, ognuno con test del 10% e dati di allenamento del 90%)? Non richiederebbe troppo tempo?

Se uso la gamma e la C del primo holdout e la uso per il resto dei 9 holdout della convalida incrociata di k-fold, è una violazione perché avrei usato i dati del treno per ottenere gamma e C e di nuovo parte dei dati del treno come prova nel secondo controllo?


Questa domanda richiede maggiori informazioni. Quale modello stai adattando? Che cos'è gamma e C in questo modello? Inoltre, potresti fornire queste informazioni modificando la domanda e non con commenti.
Probislogic

Risposte:


14

Sì, questa sarebbe una violazione poiché i dati di test per le pieghe 2-10 della convalida incrociata esterna sarebbero stati parte dei dati di addestramento per la piega 1 che sono stati utilizzati per determinare i valori del kernel e i parametri di regolarizzazione. Ciò significa che alcune informazioni sui dati di test sono potenzialmente trapelate nella progettazione del modello, il che potenzialmente dà un pregiudizio ottimistico alla valutazione delle prestazioni, che è più ottimista per i modelli che sono molto sensibili all'impostazione degli iperparametri ( favorisce decisamente i modelli con una caratteristica indesiderata).

È probabile che questa distorsione sia più forte per set di dati di piccole dimensioni, come questo, poiché la varianza del criterio di selezione del modello è maggiore per i set di dati di piccole dimensioni, il che incoraggia il sovra-adattamento del criterio di selezione del modello, il che significa che possono perdere più informazioni sui dati del test attraverso.

Ho scritto un articolo su questo uno o due anni fa, poiché ero piuttosto sorpreso dall'intensità che le deviazioni di bias dalla piena convalida incrociata annidata possono introdurre, il che può facilmente sommergere la differenza nelle prestazioni tra i sistemi di classificazione. L'articolo è "Sull'adattamento eccessivo nella selezione del modello e nella conseguente valutazione della valutazione delle prestazioni" Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (lug): 2079-2107, 2010.

Essenzialmente, l'ottimizzazione degli iperparametri dovrebbe essere considerata parte integrante dell'adattamento del modello, quindi ogni volta che si allena SVM su un nuovo campione di dati, risintonizzare in modo indipendente gli iperparametri per quel campione. Se segui questa regola, probabilmente non puoi andare troppo lontano. Vale la pena la spesa computazionale per ottenere una stima imparziale delle prestazioni, altrimenti si corre il rischio di trarre conclusioni errate dal proprio esperimento.


1
La mia esperienza personale mi ha anche reso molto cauto riguardo a tali fonti di overfitting.
cbeleites supporta Monica il

6

Dopo aver effettuato la ricerca della griglia per ciascun modello surrogato, puoi e dovresti controllare alcune cose:

  • variazione dei parametri ottimizzati (qui e C ). I parametri ottimali sono stabili? Altrimenti, molto probabilmente sei nei guai.γC
  • Confrontare le prestazioni riportate della convalida incrociata interna ed esterna.
    Se la validazione incrociata interna (cioè la messa a punto) sembra molto migliore di quella esterna (convalida del modello finale), allora anche tu sei nei guai: sei troppo adatto. Esiste un rischio sostanziale che i parametri sintonizzati non siano affatto ottimali. Tuttavia, se la validazione incrociata esterna viene eseguita correttamente (tutti i set di test sono veramente indipendenti dai rispettivi modelli surrogati), almeno hai ancora una stima imparziale (!) Delle prestazioni del modello. Ma non puoi essere sicuro che sia ottimale.
  • Quanto è pronunciato l'ottimale? Le prestazioni si riducono rapidamente per parametri non ottimali? Quanto è buona la prestazione ottimale?

C'è molto da dire sul sovradimensionamento mediante la selezione del modello. Tuttavia, è bene tenere presente che sia la varianza che la distorsione ottimistica possono davvero ferire

  • varianza significa che potresti finire accidentalmente abbastanza lontano dagli iperparametri veramente ottimali.
  • ma anche il pregiudizio può ferire: se si sta adattando in modo eccessivo, è possibile imbattersi in situazioni in cui molti modelli sembrano perfetti per la convalida incrociata interna (ma in realtà non lo sono). In tal caso, l'accordatura può andare fuori strada perché non riconosce le differenze tra i modelli.
  • Se la distorsione dipende dagli iperparametri, sei in grossi guai.

Se sei interessato ad un esempio e sai leggere il tedesco, potrei mettere online la mia tesi di Diploma.

Nella mia esperienza, la messa a punto di iperparametri è un'idea estremamente efficace per il sovradimensionamento ...

Ora, se ti rendi conto di essere troppo adatto, hai principalmente due opzioni:

  • segnala che l'ottimizzazione ha avuto un problema con l'overfitting ma che hai eseguito una corretta convalida esterna che ha prodotto ... (risultati della convalida incrociata esterna).
  • limitare la complessità del modello. Un modo per farlo è correggere gli iperparametri:

In alternativa all'ottimizzazione degli iperparametri per ciascun set di allenamento, è possibile pre-specificare i parametri ( iper) (ovvero correggerli in anticipo). Lo faccio il più possibile per i miei modelli come di solito ho ancora meno casi di quelli che hai, vedi sotto.
Tuttavia, questo aggiustamento deve essere fatto davvero e onestamente in anticipo: ad esempio ho chiesto a un collega i suoi parametri ottimizzati su un set di dati simile (esperimento indipendente) o ho fatto un pre-esperimento, inclusa la ricerca della griglia sui parametri. Quel primo esperimento viene quindi utilizzato per correggere alcuni parametri sperimentali, nonché i parametri del modello per l'esperimento reale e l'analisi dei dati. Vedi sotto per ulteriori spiegazioni.

Naturalmente è possibile eseguire test adeguati su modelli ottimizzati automaticamente (convalida doppia o nidificata), ma la dimensione del campione potrebbe non consentire la suddivisione dei dati due volte .
In tale situazione, è molto meglio IMHO riportare una stima onesta per un modello che è stato costruito utilizzando l'esperienza professionale su come scegliere i parametri di modellazione piuttosto che riportare una stima eccessiva su un qualche tipo di modello ottimizzato automaticamente.
Un altro punto di vista sulla situazione è che devi negoziare

  • prestazioni peggiori a causa dell'ulteriore accantonamento di un altro gruppo di casi per l'ottimizzazione dei parametri (dimensione del campione di addestramento inferiore => modello peggiore, ma parametri "ottimali")
  • prestazioni peggiori a causa della correzione dei parametri non ottimale da parte dell'esperto (ma su dati di allenamento più ampi).

Alcuni pensieri simili su una domanda simile: /stats//a/27761/4598


Sulla fissazione di parametri e commenti di Dikran Marsupial

Sto usando il termine iperparametri come Dikran Marsupial lo usa nel suo documento (link nella sua risposta)

Lavoro con dati spettroscopici. Questo è un tipo di misurazione in cui l'analisi e la modellazione dei dati spesso includono un bel po 'di pre-elaborazione. Questo può essere visto come iperparametro (ad es. Quale ordine di polinomio dovrebbe essere usato per la linea di base? Quali canali di misurazione dovrebbero essere inclusi?). Ci sono altre decisioni che sono più vicine ai parametri svm, ad esempio quanti componenti principali utilizzare se si fa un PCA per la riduzione della dimensionalità prima che il modello "reale" venga addestrato? E a volte uso anche la classificazione SVM, quindi devo decidere i parametri SVM.

Ora, IMHO il modo migliore per correggere gli iperparametri è se hai motivi che provengono dall'applicazione. Ad esempio, di solito decido quale tipo di baseline usare per ragioni fisiche / chimiche / biologiche (ovvero conoscenza del campione e comportamento spettroscopico che ne consegue). Tuttavia, non sono a conoscenza di una tale argomentazione che aiuta con i parametri SVM ...

Il caso dei pre-esperimenti che ho menzionato sopra appare come segue:

  • prendiamo i dati di un gruppo di celle (vogliamo distinguere diverse linee cellulari).
  • Gli spettri vengono analizzati, viene eseguita la convalida incrociata ripetuta doppia SVM (trascorsa una notte o due sul server di calcolo).

    • γC
    • Osservo anche un certo overfitting: la validazione incrociata esterna non è buona quanto i risultati della messa a punto. Questo è come previsto.
    • Tuttavia, ci sono differenze nelle prestazioni nell'intervallo di ottimizzazione degli iperparametri e le prestazioni sulla griglia di ottimizzazione sembrano ragionevolmente fluide. Buona.
  • La mia conclusione è: mentre non posso essere sicuro che gli iperparametri finali siano ottimali, la convalida incrociata esterna mi dà una stima corretta delle prestazioni dei modelli surrogati.

  • Durante la parte sperimentale, abbiamo deciso di apportare alcune modifiche al set-up sperimentale (cose che non influenzano il segnale al rumore dei dati, ma che fanno un passo ulteriore nell'automatizzazione dello strumento)

  • Miglioriamo le impostazioni sperimentali e acquisiamo nuovi spettri. Come sono le cellule, devono essere coltivate di recente. Vale a dire che il nuovo set di dati è persino un lotto di cultura indipendente.

Ora devo affrontare la decisione: dovrei "saltare" la validazione incrociata interna e seguire semplicemente gli iperparametri che ho determinato con i vecchi dati?

  • Come accennato in precedenza, corro il rischio che questi iperparametri predeterminati non siano ottimali.
  • Ma non posso nemmeno essere sicuro di ottenere iper-parametri veramente ottimali eseguendo la validazione incrociata interna (tuning).
  • Tuttavia, l'ottimizzazione sui vecchi dati era stabile.
  • Facendo l'ottimizzazione, mi allenerò con meno campioni: dato che ho comunque troppi campioni (TM), devo aspettarmi di ottenere modelli peggiori se metto da parte più campioni per un secondo round di validazione incrociata.

Quindi, in quel caso, ho deciso di seguire parametri fissi (per esperienza su dati simili e sapendo che in futuro dovremo fare i nostri "compiti a casa", incluso tra l'altro il controllo di queste decisioni con dati di grandi dimensioni).

Nota che l'importante è che io salti l' interno ( accordando la convalida incrociata), non quello esterno. Con gli iperparametri fissi ottengo una stima imparziale delle prestazioni di un modello possibilmente non ottimale. È vero che questa stima è soggetta a varianza elevata, ma questa varianza è sostanzialmente la stessa, indipendentemente dal fatto che io esegua l'accordatura interna o meno.
Saltando la valutazione trasversale esterna otterrei una stima ottimisticamente distorta di un modello sintonizzato, che a seconda dell'applicazione e dei dati può essere inutile (se molto eccessivamente ottimistico) e la distorsione ottimistica può essere chiaramente inaccettabile.


mi dispiace dover sottovalutare questa risposta, ma l'uso di valori predefiniti per gli iperparametri non è una buona pratica poiché la generalizzazione ottimale dipende dalle impostazioni appropriate per questi parametri, che varieranno da set di dati a set di dati (e per problemi pochi dati dal campione campionare). Una ricerca in griglia pre-esperimento è ancora peggiore in quanto si traduce esattamente nella stessa forma di distorsione discussa nel mio documento. Per gli SVM il problema di dividere i dati due volte non si applica in quanto è possibile utilizzare la convalida incrociata con esclusione virtuale come criterio di selezione del modello nel CV interno, quasi gratuitamente.
Dikran Marsupial,

Verificare la variazione dei parametri ottimizzati è comunque un suggerimento eccellente. Se disponi di dati sufficienti per poter stimare in modo affidabile parametri e iperparametri dai dati, i tipi di distorsione che menziono nel mio documento probabilmente non costituiranno un grosso problema. Tuttavia, se vi è molta variabilità nei valori di iperparametro ottimizzati, a causa di un piccolo set di dati, questo è il tipo di situazione in cui la convalida incrociata nidificata e altri approcci così rigorosi sono davvero necessari per evitare distorsioni sostanziali nella stima delle prestazioni.
Dikran Marsupial,

@DikranMarsupial: ho spiegato il mio background un po 'più chiaramente, dai un'occhiata. Inoltre, ho letto il tuo documento in modo più approfondito. Penso che i nostri punti non siano così distanti. Se vuoi, incontriamoci in chat - ho un sacco di domande sul tuo giornale ...
cbeleites supporta Monica il

@DikranMarsupial: (sfortunatamente, per la maggior parte dei miei dati, non posso usare il tralcio analitico poiché ho strutture di dati nidificati / gerarachici). Inoltre, ho incontrato brutte sorprese con il congedo unico, quindi ho ripetuto la convalida k-fold o out-of-bootstrap. Tuttavia, questo è fuori tema per questa domanda.
cbeleites supporta Monica il

@DikranMarsupial: se i parametri ottimizzati non sono stabili, sono comunque nei guai. Naturalmente, quindi non posso concludere che posso usare questi parametri per i nuovi dati. Inoltre, non li definirei (quale dei tanti set di parametri?) Ottimali per il modello finale ... Ho visto l'ottimizzazione diventare completamente selvaggia, ma ciò ha sempre portato a risultati molto ottimistici della convalida interna (tuning) . E che posso misurare confrontando la validazione incrociata esterna con la stima della validazione incrociata interna del modello ottimale. Aggiornata la risposta di conseguenza.
cbeleites supporta Monica il

5

γCKterr(γ,C)γCγ,C{2-nl,2-nl+1,...,2nu}γ

La chiave che penso è cercare un po 'di levigatezza della superficie attorno ai minimi locali (o ogni proiezione 1-dim) e non solo prendere il minimo globale.

γ(pσ)-1pγCC


Quindi, diciamo che ho un set di dati con 120 campioni. Dovrei trovare gamma e C inizialmente usando 120 campioni. Quindi esegui una validazione incrociata di 10 volte usando la stessa gamma e C per i k holdouts quando usi il 90% dei dati per il training e il 10% dei dati per testare? Non significherebbe che ho usato lo stesso set di allenamento per ottenere gamma e C e parte dei campioni sono anche sul set di test?
user13420

γC

Hai una scelta nel variare (γ,C)(γ,C)(γ,C)

2
λβ

2
λβλββ(λ)
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.