Multivariat linjär regression

Låt oss ta ett exempel där vi vill förutsäga huspriserna i en stad. Vi behöver historiska data om husförsäljningen för att träna en maskininlärningsmodell.

I terminologin för maskininlärning kallas informationen om huset för funktioner och prisförutsägelsen för etikett.

.

När vi har flera funktioner och vill träna en modell som kan förutsäga priset givet dessa funktioner, kan vi använda en multivariat linjär regression. Modellen måste lära sig parametrarna (theta 0 till theta n) på nedanstående träningsdataset så att om vi vill förutsäga priset för ett hus som ännu inte är sålt, kan den ge oss en förutsägelse som ligger närmare vad det kommer att säljas för.

Practical Ideas for making Gradient Descent work well

  1. 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. Vi kan göra detta med hjälp av maskineriet för multivariant linjär regression. Så bara genom att välja tre egenskaper (en storlek, en annan kvadrat av storlek och en tredje kub av storlek) och tillämpa linjär regression kan vi anpassa modellen och få en kubisk anpassning till data.

Viktigt att notera här är skalning av egenskaper. Så om storleken på huset sträcker sig från ett till tusen, kommer husets storlek i kvadrat att sträcka sig från en till en miljon, och den tredje funktionen x kubik, kommer att sträcka sig från en två tio till nio, och så dessa tre funktioner tar på mycket olika intervall av värden, och det är viktigt att tillämpa funktionsskalning för gradient nedstigning för att få dem i jämförbara intervall av värden.

Ett annat rimligt val här skulle kunna vara att säga att priset på ett hus är theta noll plus theta en gång storleken, och sedan plus theta två gånger kvadratroten av storleken.

Vid insikt i formen av en kvadratrotsfunktion, och genom att välja olika funktioner kan vi ibland få bättre modeller.

Det verkar lite förvirrande, att med alla dessa olika funktionsval, hur bestämmer jag mig för vilka funktioner jag ska använda. I kommande inlägg kommer vi att tala om några algoritmer som automatiskt väljer vilka funktioner som används, och automatiskt väljer om vi vill anpassa en kvadratisk funktion, eller en kubisk funktion, eller något annat.

Men tills dess bör vi veta att vi har ett val när det gäller vilka funktioner som ska användas, och genom att utforma olika funktioner kan vi anpassa mer komplexa funktioner på våra data än att bara anpassa en rät linje till data.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *