Wanneer we meerdere kenmerken hebben en we een model willen trainen dat de prijs kan voorspellen gegeven die kenmerken, kunnen we een multivariate lineaire regressie gebruiken. Het model moet de parameters (theta 0 tot theta n) leren op de trainingsdataset hieronder, zodat als we de prijs willen voorspellen voor een huis dat nog niet verkocht is, het model ons een voorspelling kan geven die dichter ligt bij de prijs waarvoor het verkocht zal worden.
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. We kunnen dit doen met behulp van de machines van multivariante lineaire regressie. Dus door drie kenmerken te kiezen (een maat, een ander kwadraat van maat en een derde kubus van maat) en de machinerie van lineaire regressie toe te passen, kunnen we dit model passen en komen we uit op een kubusvormige aanpassing aan de gegevens.
Belangrijk hierbij is het schalen van kenmerken. Dus als de grootte van het huis varieert van een tot duizend, dan zal de grootte in het kwadraat van het huis variëren van een tot een miljoen, en het derde kenmerk x kubieke, zal variëren van een twee tien tot de negen, en dus deze drie kenmerken nemen zeer verschillende bereiken van waarden, en het is belangrijk om functie schalen voor gradiënt afdaling toe te passen om ze te krijgen in vergelijkbare bereiken van waarden.
Een andere redelijke keuze hier zou kunnen zijn om te zeggen dat de prijs van een huis theta nul plus theta één maal de grootte is, en dan plus theta twee maal de vierkantswortel van de grootte.
Door inzicht te hebben in de vorm van een vierkantswortelfunctie, en, in de vorm van de gegevens, door verschillende kenmerken te kiezen, kunnen we soms betere modellen krijgen.
Het lijkt een beetje verbijsterend, dat met al die verschillende feature-keuzes, hoe beslis ik welke features ik moet gebruiken. In volgende berichten zullen we het hebben over algoritmen die automatisch kiezen welke features worden gebruikt, en automatisch kiezen of we een kwadratische functie willen gebruiken, of een kubische functie, of iets anders.
Maar tot die tijd moeten we weten dat we een keuze hebben in welke features we gebruiken, en door verschillende features te ontwerpen kunnen we complexere functies op onze gegevens toepassen dan alleen maar een rechte lijn.