Domanda

Ho un problema di classificazione in mano, che vorrei affrontare con un algoritmo di apprendimento automatico (Bayes o Markovian probabilmente, la domanda è indipendente dal classificatore da utilizzare). Dato un numero di casi di formazione, sto cercando un modo per misurare le prestazioni di un classificatore implementato, tenendo conto del problema del sovradimensionamento dei dati.

Cioè: dati N [1..100] campioni di allenamento, se eseguo l'algoritmo di allenamento su ciascuno dei campioni e utilizzo questi stessi campioni per misurare l'idoneità, potrebbe rimanere bloccato in un problema di overfitting dei dati -il il classificatore conoscerà le risposte esatte per le istanze di allenamento, senza avere molto potere predittivo, rendendo inutili i risultati di fitness.

Una soluzione ovvia sarebbe quella di separare i campioni marcati a mano in formazione e testare i campioni; e mi piacerebbe conoscere i metodi di selezione dei campioni statisticamente significativi per la formazione.

White paper, puntatori di libri e PDF molto apprezzati!

È stato utile?

Soluzione

Puoi usare Convalida incrociata 10 volte per questo. Credo che sia un approccio piuttosto standard per la valutazione delle prestazioni dell'algoritmo di classificazione.

L'idea di base è quella di dividere i campioni di apprendimento in 10 sottoinsiemi. Quindi utilizzare un sottoinsieme per i dati di prova e altri per i dati del treno. Ripeti l'operazione per ogni sottoinsieme e calcola il rendimento medio alla fine.

Altri suggerimenti

Come ha affermato Brownstone, la convalida incrociata di 10 volte è probabilmente il modo migliore di procedere. Di recente ho dovuto valutare le prestazioni di numerosi classificatori diversi per questo ho usato Weka . Che ha un'API e un carico di strumenti che ti consentono di testare facilmente le prestazioni di molti classificatori diversi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top