Prendiamo un esempio in cui vogliamo prevedere i prezzi delle case in una città. Avremo bisogno di dati storici sulle vendite di case per addestrare un modello di apprendimento automatico.
Nella terminologia dell’apprendimento automatico, le informazioni sulla casa sono chiamate caratteristiche e la previsione del prezzo è chiamata etichetta.
Quando abbiamo più caratteristiche e vogliamo addestrare un modello che possa prevedere il prezzo dato queste caratteristiche, possiamo usare una regressione lineare multivariata. Il modello dovrà imparare i parametri (da theta 0 a theta n) sul set di dati di addestramento di seguito, in modo tale che se vogliamo predire il prezzo di una casa che non è ancora stata venduta, può darci una previsione che è più vicina al prezzo di vendita.
Practical Ideas for making Gradient Descent work well
- Use feature scaling to help gradient descent converge faster. Get every feature between -1 and +1 range. It doesn’t have to be exactly in the -1 to +1 range but it should be close to that range.
2. In addition to dividing the feature by maximum value people sometimes use mean normalization.
3. If we plot the value of cost function after each iteration of gradient descent, we should see that it converges. Below is a graph that shows gradient descent is converging. The number of iterations that it can take for gradient descent to converge varies a lot.
Polynomial Regression
Let’s say we have a housing price data set that looks like below.
Then there are a few different models we might fit to this.
One thing we could do is fit a quadratic model. It doesn’t look like a straight line fits this data very well. But then we may decide that quadratic model doesn’t make sense because of a quadratic function, eventually this function comes back down and we don’t think housing prices should go down when the size goes up too high. So then maybe we might choose a different polynomial model and choose to use instead a cubic function, and where we have now a third-order term and we fit that where green line is a somewhat better fit to the data cause it doesn’t eventually come back down. Possiamo farlo usando il meccanismo della regressione lineare multivariante. Quindi, semplicemente scegliendo tre caratteristiche (una dimensione, un altro quadrato di dimensione e un terzo cubo di dimensione) e applicando il meccanismo della regressione lineare, possiamo adattare questo modello e finire con un adattamento cubico ai dati.
La cosa importante da notare qui è la scalatura delle caratteristiche. Così, se la dimensione della casa va da uno a mille, allora la dimensione al quadrato della casa andrà da uno a un milione, e la terza caratteristica x al cubo, andrà da uno due dieci al nove, e così queste tre caratteristiche assumono intervalli di valori molto diversi, ed è importante applicare il feature scaling per la discesa del gradiente per portarli in intervalli di valori comparabili.
Un’altra scelta ragionevole qui potrebbe essere quella di dire che il prezzo di una casa è theta zero più theta uno volte la dimensione, e poi più theta due volte la radice quadrata della dimensione.
Avendo comprensione della forma di una funzione radice quadrata, e sulla forma dei dati, scegliendo caratteristiche diverse, possiamo talvolta ottenere modelli migliori.
Sembra un po’ sconcertante, che con tutte queste diverse scelte di caratteristiche, come faccio a decidere quali caratteristiche usare. Nei prossimi post, parleremo di alcuni algoritmi che sceglieranno automaticamente quali caratteristiche utilizzare, e sceglieranno automaticamente se vogliamo adattare una funzione quadratica, o una funzione cubica, o qualcos’altro.
Ma, fino ad allora, dovremmo sapere che abbiamo una scelta su quali caratteristiche utilizzare, e progettando diverse caratteristiche possiamo adattare ai nostri dati funzioni più complesse che adattare semplicemente una linea retta ai dati.