Octave:最急降下線形回帰プログラミング



Octave Gradient Descent Linear Regression Programming



最初のオクターブのコードを記録します。

渡されるパラメーターは、引数x、従属変数(真の値)y、引数です。 (初期値を与えるだけですが、x、yに一致するベクトルのサイズに注意してください)



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

収束効果(コスト関数J)を次の図に示します。