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.