1. 程式人生 > >Python機器學習入門1.4《邏輯斯蒂高階優化》

Python機器學習入門1.4《邏輯斯蒂高階優化》

options = optimset('GradObj','on','MaxIter','100');
initialTheta = zeros(2,1);
[optTheta,functionVal,exitFlag] = fminunc(@costFunction,inititalTheta,options);

costFunction函式是自定義函式;輸入是theta,輸出是jVal和gradient,其中jVal是對照左邊求損失函式的,gradient是對照左邊求損失函式的偏導。

Optimset函式:‘Gradobj’指使用者自定義的目標函式梯度;‘MaxITer’指最大迭代次數,‘100’也就是最大迭代次數,這一項只能為整數。

Fminunc函式:有三個輸入,第一個輸入為costfunction函式的控制代碼,第二個輸入為設定的初始theta值,第三個輸入為optimset函式的返回值。   

function[jVal,gradient] = costFunction(theta)
jVal = (theta(1)-5)^2 + (theta(2)-5)^2;
gradient =zeros(2,1)
gradient(1) = 2*(theta(1) - 5)
gradient(2) = 2*(theta(2) - 5)