Oktaav: gradientne laskumine Lineaarse regressiooni programmeerimine
Octave Gradient Descent Linear Regression Programming
Salvestage esimese oktavi kood.
Edastatud parameetrid on argument x, sõltuv muutuja (tõeline väärtus) y, argument (Andke lihtsalt algväärtus, kuid pöörake tähelepanu vektori suurusele, et see sobiks x, y-ga)
Function J=function3(x, y, T) % cost function J=1/(2*size(T,1))*sum((x*T-y).^2) j=0 m=0 t1=0 while 1, if(t1>=1000000), break end for i=1:1:size(T,1), T(i)=T(i)-0.01*(1/size(T,1))*sum(x(:,i)'*(x*T-y)) %' end m=1/(2*size(T,1))*sum((x*T-y).^2) J=[Jj] % is used to record the cost function value after each drop if(abs(m-j)<=0.000000000000001), break end j=m t1=t1+1 end
Konvergentsiefekt (kulufunktsioon J) on näidatud joonisel: