Sto cercando di costruire un modello di previsione con SVM su dati abbastanza sbilanciati. Le mie etichette / output hanno tre classi, positiva, neutra e negativa. Direi che l'esempio positivo rende circa il 10-20% dei miei dati, neutro circa il 50-60% e negativo circa il 30-40%. Sto cercando di bilanciare le classi poiché il costo associato a previsioni errate tra le classi non è lo stesso. Un metodo consisteva nel ricampionare i dati di addestramento e produrre un set di dati equamente bilanciato, che era più grande dell'originale. È interessante notare che, quando lo faccio, tendo a ottenere previsioni migliori per l'altra classe (ad esempio, quando ho bilanciato i dati, ho aumentato il numero di esempi per la classe positiva, ma fuori dalle previsioni del campione, la classe negativa ha fatto meglio). Chiunque può spiegare in generale perché questo accade? Se aumentassi il numero di esempio per la classe negativa, otterrei qualcosa di simile per la classe positiva in previsioni fuori campione (ad esempio, previsioni migliori)?
Inoltre sono molto aperti ad altri pensieri su come posso affrontare i dati sbilanciati imponendo costi diversi sulla classificazione errata o usando i pesi di classe in LibSVM (non sono sicuro di come selezionare / ottimizzare quelli correttamente però).