Machine learning 八度调频输出函数
我试图实现正则化逻辑回归算法,使用倍频程中的Machine learning 八度调频输出函数,machine-learning,octave,Machine Learning,Octave,我试图实现正则化逻辑回归算法,使用倍频程中的fminunc()函数最小化代价函数。正如一般建议的那样,我想将成本函数绘制为fminunc()函数迭代次数的函数。函数调用如下所示- [theta, J, exit_flag] = ... fminunc(@(t)(costFunctionReg(t, X, y, lambda)), initial_theta, options); 与 [showJ history是预期的输出函数;我希望我已正确设置了选项参数] 但是,我在互联网上找不到好
fminunc()
函数最小化代价函数。正如一般建议的那样,我想将成本函数绘制为fminunc()
函数迭代次数的函数。函数调用如下所示-
[theta, J, exit_flag] = ...
fminunc(@(t)(costFunctionReg(t, X, y, lambda)), initial_theta, options);
与
[showJ history
是预期的输出函数;我希望我已正确设置了选项
参数]
但是,我在互联网上找不到好的资料来强调如何编写这个输出函数,特别是fminunc()
传递给它的参数,它返回的内容(如果fminunc()
特别需要)
有人可以提供一些有用的链接或帮助我编写输出函数。我想你可以参考。也考虑这个例子:
1;
function f = __rosenb (x)
# http://en.wikipedia.org/wiki/Rosenbrock_function
n = length (x);
f = sumsq (1 - x(1:n-1)) + 100 * sumsq (x(2:n) - x(1:n-1).^2);
endfunction
function bstop = showJ_history(x, optv, state)
plot(optv.iter, optv.fval, 'x')
# setting bstop to true stops optimization
bstop = false;
endfunction
opt = optimset('OutputFcn', @showJ_history);
figure()
xlabel("iteration")
ylabel("cost function")
hold on
[x, fval, info, out] = fminunc (@__rosenb, [5, -5], opt);
你们也可以实现梯度下降或法向方程来得到你们的中间值,若你们达到LR,那个应该是小菜一碟。
1;
function f = __rosenb (x)
# http://en.wikipedia.org/wiki/Rosenbrock_function
n = length (x);
f = sumsq (1 - x(1:n-1)) + 100 * sumsq (x(2:n) - x(1:n-1).^2);
endfunction
function bstop = showJ_history(x, optv, state)
plot(optv.iter, optv.fval, 'x')
# setting bstop to true stops optimization
bstop = false;
endfunction
opt = optimset('OutputFcn', @showJ_history);
figure()
xlabel("iteration")
ylabel("cost function")
hold on
[x, fval, info, out] = fminunc (@__rosenb, [5, -5], opt);