2015-06-09 15 views
38

Questa è diventata una domanda piuttosto frustrante, ma ho chiesto nelle discussioni di Coursera e non saranno di aiuto. Qui di seguito è la domanda:Normalizza una funzionalità in questa tabella

enter image description here

ho ottenuto sbagliato 6 volte. Come si normalizza la funzione? I suggerimenti sono tutto ciò che chiedo.

Sto assumendo che x_2^(2) sia il valore 5184, a meno che non aggiungo la colonna x_0 di 1, che non menzionano ma menziona certamente nelle lezioni quando si parla della creazione della matrice di progettazione X. Nel qual caso x_2^(2) sarebbe il valore 72. Supponendo che uno o l'altro sia giusto (sto giocando a un gioco di ipotesi), cosa dovrei usare per normalizzarlo? Parla di 3 modi diversi per normalizzare nelle lezioni: una che usa il valore massimo, un'altra con la gamma/differenza tra massimo e minimo, e un'altra la deviazione standard - vogliono una risposta corretta allo centesimi. Quale devo usare? Questo è così confuso.

+1

mi sono bloccato alla stessa domanda. Qualcuna delle risposte ha funzionato per te? –

+1

A qualcuno come me che sembra avere i numeri corretti, ma ha comunque fallito questa domanda: nel mio caso, ho dimenticato di arrotondare come chiesto. La mia domanda è stata randomizzata per la 4a funzione, i miei calcoli mi hanno dato -0,469, che dovrebbe essere arrotondato a -0,47 e ho postato -0,46. Doh! – ido

risposta

32

... utilizzare sia il ridimensionamento funzione (dividendo per il "max-min", o intervallo, di una caratteristica) e significa normalizzazione.

Quindi per ogni singola funzione f:

f_norm = (f - f_mean)/(f_max - f_min) 

esempio per x2, (medio termine dell'esame)^2 = {7921, 5184, 8836, 4761}

> x2 <- c(7921, 5184, 8836, 4761) 
> mean(x2) 
6676 
> max(x2) - min(x2) 
4075 
> (x2 - mean(x2))/(max(x2) - min(x2)) 
0.306 -0.366 0.530 -0.470 

Quindi norma (5184) = 0.366

(usando un linguaggio R, che è grande a espressioni Vettorizzazione come questo)

Sono d'accordo che è confondere hanno usato la notazione x2 (2) a significare x2 (norma) o x2'


EDIT : in pratica tutti chiamano la funzione integrata scale(...), che fa la stessa cosa.

+0

grazie per la risposta. ma ho notato che l'ultima riga di codice dovrebbe essere (x2-mean (x2))/(max (x2) - min (x2)) –

+0

@FangCao: Doh! come mai l'ho invertito ?! – smci

+10

Non dovrebbe essere '-.366'? –

0

Normalmente normalizziamo tutti con una media zero e un intervallo tra [-1, 1].

È possibile farlo facilmente dividendo per il massimo del valore assoluto e quindi rimuovere la media dei campioni.

0

"Sto assumendo x_2^(2) è il valore 5184" è questo perché è il secondo elemento nell'elenco e utilizza l'indice _2? x_2 è solo un'identità variabile in matematica, si applica a tutte le righe nell'elenco. Si noti che il risultato dell'esame a metà percorso grezzo più alto (ovvero quello che non è al quadrato) scende al test finale e il risultato a medio termine grezzo più basso aumenta di più per il risultato dell'esame finale. Theta è un valore fisso, un coefficiente, quindi da qualche parte la normalizzazione dei valori x_1 e x_2 deve diventare (EDIT: non negativo, meno di 1) per consentire questo comportamento. Si spera che questo ti dia una base di partenza, identificando dove si trova il punto di svolta.

4

Sta chiedendo di normalizzare la seconda funzione sotto la seconda colonna utilizzando sia il ridimensionamento delle funzioni che la normalizzazione media. Pertanto,

(5184 - 6675.5)/4075 = -0.366

+1

'(5184 - 6675,5)/4075 = -0,366' –

0

Ho avuto lo stesso problema, nel mio caso la cosa è che mi stava usando come media il valore massimo x2 (8836) meno valore minimo x2 (4761) diviso per due, al posto del somma di ogni valore x2 divisa per il numero di esempi.

-1

Per lo stesso set di allenamento, ho ricevuto la domanda come D. Qual è la caratteristica normalizzata x^(3) _1?

Così, la 3a sessione di allenamento e la 1a caratteristica corrispondono a 94 nella tabella sopra. Ora, forma normalizzata è

x = (x - mean(x's))/range(x) 

I valori sono:

x = 94 
mean(89+72+94+69)/4 = 81 
range = 94 - 69 = 25 

Normalized x = (94 - 81)/25 = 0.52