2013-07-28 7 views
6

Ho capito che la domanda correlata Positives/negatives proportion in train set suggeriva che un rapporto 1 a 1 di esempi di addestramento positivo a negativo è favorevole all'algoritmo di Rocchio.Corretto rapporto tra gli esempi di addestramento positivi e negativi per la formazione di un classificatore binario casuale basato su foresta

Tuttavia, questa domanda differisce dalla domanda correlata in quanto riguarda un modello di foresta casuale e anche nei due modi seguenti.

1) Ho un sacco di dati di addestramento con cui lavorare e il collo di bottiglia principale sull'utilizzo di più esempi di allenamento è la formazione del tempo di iterazione. Cioè, preferirei non prendere più di una notte per addestrare un ranker perché voglio ripetere rapidamente.

2) In pratica, il classificatore probabilmente vedrà 1 esempio positivo per ogni 4 esempi negativi.

In questa situazione, dovrei allenarmi utilizzando più esempi negativi di esempi positivi, o ancora numeri uguali di esempi positivi e negativi?

risposta

3

Questa potrebbe sembrare una risposta banale ma la cosa migliore che posso suggerire è provare un piccolo sottoinsieme di dati (abbastanza piccolo da far sì che l'algoritmo si alleni rapidamente), e osservare quale precisione si ha quando si usa 1-1 , 1-2, 1-3 ecc ...

Tracciare i risultati man mano che aumenta gradualmente la quantità totale di esempi per ciascun rapporto e vedere come risponde la prestazione. Molto spesso scoprirai che le frazioni dei dati si avvicinano molto alla performance della formazione sul set di dati completo, nel qual caso puoi prendere una decisione informata sulla tua domanda.

Spero che questo aiuti.

4

vedere la sezione intitolata "Bilanciamento errore di previsione" dalla documentazione ufficiale sulle foreste casuali qui: https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#balance

ho segnato alcune parti in grassetto.

In sintesi, questo sembra suggerire che i dati di allenamento e di test dovrebbero entrambi

  1. riflettere il rapporto 1: 4 di classi che i dati reali avranno o
  2. si può avere un 1: 1 mix, ma allora si dovrebbe regolare con cura le pesi per classe come illustrato di seguito fino a quando il tasso di errore OOB sul tuo (più piccola) classe desiderata viene abbassato

speranza che aiutano S.

In alcuni set di dati, l'errore di predizione tra le classi è altamente sbilanciato. Alcune classi hanno un errore di predizione basso, altre un alto. Ciò si verifica in genere quando una classe è molto più grande di un'altra. Quindi le foreste casuali di , cercando di ridurre al minimo il tasso di errore complessivo, manterranno basso il tasso di errore sulla classe grande, mentre le classi più piccole hanno un tasso di errore più elevato. Ad esempio, nel caso di una molecola data classificata come attiva o meno, è comune avere gli attivati ​​superati in numero da 10 a 1, fino a 100 a 1. In queste situazioni il tasso di errore sull'interessante classe (actives) sarà molto alta.

L'utente può rilevare lo sbilanciamento emettendo i tassi di errore per le singole classi . Per illustrare i dati sintetici 20 dimensionali è utilizzato . La classe 1 si verifica in un gaussiano sferico, classe 2 su un altro. Viene generato un set di allenamento di 1000 classi 1 e 50 di classe 2, insieme a con un set di prova di 5000 classi 1 e 250 classi 2.

L'output finale di un bosco di 500 alberi su questi dati è:

500 3,7 0,0 78,4

v'è una bassa errore globale insieme di test (3,73%), ma in classe 2 ha più di 3/4 delle sue cause errate.

Il bilanciamento degli errori può essere eseguito impostando pesi diversi per le classi.

Più alto è il peso di una classe, più il suo tasso di errore è diminuito. Una guida su quali pesi dare è di renderli inversamente proporzionali alle popolazioni di classe. Quindi impostare i pesi su 1 in classe 1 e 20 su classe 2 ed eseguire di nuovo. L'output è:

500 12,1 12,7 0,0

il peso di 20 sulla classe 2 è troppo alta. Impostare a 10 e riprovare, ottenendo:

500 4,3 4,2 5,2

Questo è abbastanza vicino al pareggio. Se si desidera il bilanciamento esatto, il peso dello sulla classe 2 potrebbe oscillare un po 'di più.

Si noti che per ottenere questo equilibrio, il tasso di errore generale è aumentato. Questo è il solito risultato: per ottenere un migliore equilibrio, l'errore complessivo verrà aumentato.