Optimization 关于简单logistic回归的Optim.jl

Optimization 关于简单logistic回归的Optim.jl,optimization,julia,logistic-regression,minimization,Optimization,Julia,Logistic Regression,Minimization,我知道以前有人问过这个问题,但中提供的答案不再有效。我的代码看起来像这样 sigmoid(x) = 1 ./ (1 .+ exp.(-x)); function costfunction(θ,X,y) m = length(y); J = 0; grad = zeros(size(θ)); c(X,i,θ)=sigmoid(θ[1]+X[i,2]*θ[2]+X[i,3]*θ[3]); for i in 1:m d = c(X,i,θ);

我知道以前有人问过这个问题,但中提供的答案不再有效。我的代码看起来像这样

sigmoid(x) = 1 ./ (1 .+ exp.(-x));
function costfunction(θ,X,y)
    m = length(y);
    J = 0;
    grad = zeros(size(θ));
    c(X,i,θ)=sigmoid(θ[1]+X[i,2]*θ[2]+X[i,3]*θ[3]);
    for i in 1:m
        d = c(X,i,θ);
        J += y[i]==0 ? (-log(1-d)) : (-log(d));
    end
    J/=m;
    for i in 1 : length(θ)
        for j in 1:m
            grad[i] += (c(X,j,θ) - y[j])*X[j,i];
        end
        grad[i]/=m;
    end
    return J,grad;
end
cost, grad! = costfunction(initial_theta,X,y);
res = optimize(cost, grad!, , method = ConjugateGradient(), iterations = 1000); `
初始θ为[0,0,0]

X是一个99x3数据帧(第一列是1s),y是一个包含99个元素的向量

如何使用Optim.jl找到最小化函数的θ?

成本(θ)=成本函数(θ,X,y)[1]; 毕业生!(θ) =成本函数(θ,X,y)[2]; res=优化(成本、梯度、初始θ、LBFGS();原地=假); θ=最优极小值(res)

inplace=false参数存在于optim.jl文档中

你仔细看过那边的答案了吗?我认为,传递给
optimize
的梯度必须是一个函数。请将上面评论中的方法调用以及您收到的任何错误消息添加到问题中。