Come normalizzare i dati per la rete neurale e la foresta decisionale


10

Ho un set di dati con 20000 campioni, ognuno con 12 caratteristiche diverse. Ciascun campione appartiene alla categoria 0 o 1. Voglio formare una rete neurale e una foresta decisionale per classificare i campioni in modo da poter confrontare i risultati e entrambe le tecniche.

La prima cosa su cui mi sono imbattuto è la corretta normalizzazione dei dati. Una caratteristica è nell'intervallo [0,106] , un'altra in e c'è una caratteristica che assume principalmente il valore 8 e talvolta 7. Quindi, come ho letto in diverse fonti, una corretta normalizzazione dei dati di input è fondamentale per le reti neurali. Come ho scoperto, ci sono molti modi possibili per normalizzare i dati, ad esempio:[30,40]

  1. Normalizzazione Min-Max : l'intervallo di input viene trasformato linearmente nell'intervallo (o in alternativa , importa?)[0,1][1,1]
  2. Normalizzazione del punteggio Z : i dati vengono trasformati per avere zero media e varianza unitaria:
    ynew=yoldmeanVar

Quale normalizzazione dovrei scegliere? La normalizzazione è necessaria anche per le foreste decisionali? Con la normalizzazione Z-Score, le diverse caratteristiche dei miei dati di test non si trovano nello stesso intervallo. Potrebbe essere un problema? Ogni funzionalità dovrebbe essere normalizzata con lo stesso algoritmo, in modo che io decida di utilizzare Min-Max per tutte le funzionalità o Z-Score per tutte le funzionalità?

Esistono combinazioni in cui i dati sono mappati su e hanno anche una media zero (il che implicherebbe una trasformazione non lineare dei dati e quindi un cambiamento nella varianza e in altre caratteristiche dei dati di input).[1,1]

Mi sento un po 'perso perché non riesco a trovare riferimenti che rispondano a queste domande.

Risposte:


21

Non sono d'accordo con gli altri commenti.

(XXio,X>Xio)

Le foreste casuali sono solo un gruppo di alberi decisionali, quindi non cambia questa logica.

Le reti neurali sono una storia diversa. Prima di tutto, in termini di previsione, non fa alcuna differenza. La rete neurale può facilmente contrastare la tua normalizzazione poiché ridimensiona i pesi e modifica la distorsione. Il grosso problema è nella formazione.

Se si utilizza un algoritmo come backpropagation resiliente per stimare i pesi della rete neurale, allora non fa alcuna differenza. Il motivo è perché usa il segno del gradiente, non la sua grandezza, quando si cambiano i pesi nella direzione di qualunque cosa minimizzi l'errore. Questo è l'algoritmo predefinito per il neuralnetpacchetto in R, tra l'altro.

Quando fa la differenza? Quando si utilizza la backpropagation tradizionale con funzioni di attivazione sigmoid, è possibile saturare il derivato sigmoid.

Considera la funzione sigmoide (verde) e la sua derivata (blu):

sigma

S'(9999)=0

X-minXmaxX-minX-0.5

La normale normalizzazione non è molto cruciale perché influenza solo le iterazioni iniziali del processo di ottimizzazione. Finché è centrato e la maggior parte dei dati è inferiore a 1, potrebbe significare che è necessario utilizzare leggermente meno o più iterazioni per ottenere lo stesso risultato. Ma il risultato sarà lo stesso, purché si eviti il ​​problema di saturazione che ho citato.

C'è qualcosa di non discusso qui che è la regolarizzazione . Se si utilizza la regolarizzazione in funzione obiettivo, il tuo modo di normalizzare i dati sarà influenzare il modello risultante. Suppongo che tu abbia già familiarità con questo. Se sai che una variabile è più soggetta a causare un overfitting, la tua normalizzazione dei dati dovrebbe tenerne conto. Questo è ovviamente completamente indipendente dalle reti neurali utilizzate.


2
  1. Non esiste una risposta chiara . Quello che consiglierei sarebbe di ridimensionare i dati utilizzando approcci diversi e quindi utilizzare lo stesso modello per prevedere i risultati sul set di controllo (le RF funzionerebbero bene qui). Questo dovrebbe almeno mostrarti quale approccio di ridimensionamento è il migliore nel tuo problema di previsione.
  2. Non è necessario ridimensionare i dati per le foreste casuali
  3. I singoli intervalli non dovrebbero essere un problema purché siano costantemente ridimensionati per cominciare. Questo sta solo dimostrando che ci sono differenze tra le variabili, solo su una scala più compatta rispetto a prima.
  4. : tutti i dati devono essere ridimensionati con lo stesso approccio. Altrimenti i valori nel set di dati trasformati potrebbero non essere correlati ai dati stessi, ma all'algo utilizzato per il ridimensionamento.

Speriamo che questo aiuti.


1
Ottima risposta, vorrei solo aggiungere che dipende un po 'dalla particolare distribuzione dei dati con cui hai a che fare e dal fatto che stai rimuovendo valori anomali. I dati normali sembreranno molto buoni se standardizzati. Tuttavia, una distribuzione uniforme potrebbe apparire molto migliore con la normalizzazione min / max. Inoltre, una distribuzione normale del registro con sigma = 10 potrebbe nascondere gran parte del comportamento interessante vicino allo zero se lo si normalizza min / max.
AN6U5,

@ AN6U5 - Ottimo punto. Onestamente non ho pensato troppo agli impatti del ridimensionamento su diverse distribuzioni / valori anomali sottostanti. Potrebbe darci una lettura stamattina!
plumbus_bouquet il
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.