2015-08-20 11 views
16

Sto utilizzando la regressione lineare per prevedere i dati. Ma, sto ottenendo risultati totalmente contrastanti quando Normalize (Vs) normalizza le variabili.Regressione lineare :: Normalizzazione (Vs) Standardizzazione

Normalizzazione = x -xmin/Xmax - xmin Zero Punteggio Standardizzazione = x - xmean/xstd

a) Also, when to Normalize (Vs) Standardize ? 
b) How Normalization affects Linear Regression? 
c) Is it okay if I don't normalize all the attributes/lables in the linear regression? 

Grazie, Santosh

+0

Questa domanda è stata utile per far emergere le basi di queste importanti caratteristiche dei dati. – javadba

+0

https://stats.stackexchange.com/q/10289/173093 questa domanda può anche aiutare –

risposta

13

Si noti che i risultati potrebbero non essere necessariamente così diversi. Potresti semplicemente aver bisogno di diversi hyperparametri per le due opzioni per ottenere risultati simili.

L'ideale è testare ciò che funziona meglio per il tuo problema. Se non puoi permetterti questo per qualche motivo, la maggior parte degli algoritmi trarrà probabilmente beneficio dalla standardizzazione più che dalla normalizzazione.

Vedi here per alcuni esempi di quando si dovrebbe essere preferito rispetto all'altro:

Ad esempio, in cluster analisi, normalizzazione può essere particolarmente importante per comparare somiglianze tra caratteristiche basate su determinate misure di distanza. Un altro esempio importante è l'analisi delle componenti principali, in cui di solito preferiamo la standardizzazione rispetto al ridimensionamento Min-Max, poiché siamo interessati ai componenti che massimizzano la varianza (in base alla domanda e se il PCA calcola i componenti tramite la matrice di correlazione anziché matrice di covarianza, ma più su PCA nel mio precedente articolo).

Tuttavia, questo non significa che il ridimensionamento Min-Max non è affatto utile! Un'applicazione popolare è l'elaborazione delle immagini, in cui le intensità dei pixel devono essere normalizzate per rientrare in un determinato intervallo (ad esempio, da 0 a 255 per l'intervallo di colori RGB). Inoltre, l'algoritmo tipico della rete neurale richiede dati che su una scala 0-1.

Uno svantaggio della normalizzazione rispetto alla standardizzazione è che perde alcune informazioni nei dati, in particolare sui valori anomali.

Anche sulla pagina collegata, c'è questa immagine:

Plots of a standardized and normalized data set

Come si può vedere, i cluster di scala tutti i dati molto vicini tra loro, che non può essere quello che vuoi. Potrebbe far sì che gli algoritmi come la discesa del gradiente impieghino più tempo per convergere verso la stessa soluzione che avrebbero su un set di dati standardizzato, oppure potrebbe addirittura renderlo impossibile.

"Normalizzare le variabili" non ha molto senso. La terminologia corretta è "normalizzare/ridimensionare le funzionalità". Se hai intenzione di normalizzare o scalare una funzione, dovresti fare lo stesso per il resto.

+0

Grazie. Dalla tua spiegazione mi sembra che dovremmo sempre "standardizzare le variabili". Puoi anche approfondire questo argomento: "Se stai per normalizzare o scalare una funzione, dovresti fare lo stesso per il resto.". Inoltre, nel mio set di dati ho attributi come long, latitude, altitude, anche noi dobbiamo normalizzarli. –

+1

Ho un diverso punto di vista delle cose. Il più delle volte, il centraggio dei dati è buono. Ma il ridimensionamento è un'altra cosa. Perché a volte funzionalità diverse richiedono un ridimensionamento diverso (ad esempio, se i dati devono sempre essere con 1 STD, perché esiste qualcosa come Mahalanobis Distance?). Questo è ridimensionamento e dovrebbe essere preso sul posto solo se questo è quello che ti serve. – Royi

+0

@SantoshKumar Intendo che la risposta a 'c)' non è in generale. Generalmente non è ok se non normalizzi tutti gli attributi. Non conosco le specifiche del tuo particolare problema, le cose potrebbero essere diverse per questo, ma è improbabile. Quindi sì, dovresti probabilmente normalizzarlo o ridimensionarlo. – IVlad

5

Questo ha senso perché la normalizzazione e standardizzazione fanno cose diverse .

Normalizzazione trasforma i dati in un intervallo tra 0 e 1

normalizzazione di trasformare i dati in modo tale che la distribuzione risultante ha una media di 0 e una deviazione standard di 1

Normalizzazione/normalizzazione sono progettati per ottenere un obiettivo simile, che è quello di creare funzionalità che hanno intervalli simili tra loro. Vogliamo che così possiamo essere sicuri di catturare le informazioni vere in una funzione e di non pesare troppo su una particolare caratteristica solo perché i suoi valori sono molto più grandi di altre caratteristiche.

Se tutte le funzionalità si trovano in un intervallo simile tra loro, non è necessario standardizzare/normalizzare. Se, tuttavia, alcune funzionalità assumono valori molto più grandi/più piccoli di altri, si richiede normalizzazione/standardizzazione per

Se si sta normalizzando almeno una variabile/funzione, farei la stessa cosa anche a tutti gli altri

+1

Questo non è proprio vero. Le gamme di funzionalità sono una parte del problema, ma molti algoritmi beneficiano della parte di standardizzazione. Il ridimensionamento semplice può perdere informazioni importanti nei dati, in particolare in relazione ai valori anomali. I kernel RBF funzionano molto peggio su dati non standardizzati. Gli obiettivi non sono gli stessi. – IVlad

+0

Grazie. c) Va bene se non normalizzo tutti gli attributi/lables nella regressione lineare? –