python中的fminunc
函数(来自octave/matlab)是否有替代方法?我有一个二元分类器的代价函数。现在我想通过梯度下降得到θ的最小值。octave/matlab实现如下所示。
% Set options for fminunc
options = optimset('GradObj', 'on', 'MaxIter', 400);
% Run fminunc to obtain the optimal theta
% This function will return theta and the cost
[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
我使用numpy库在python中转换了costFunction,并在numpy中查找fminunc或任何其他梯度下降算法实现。
我还试图实现logistic回归,正如Coursera ML课程中所讨论的,但在python中。我发现希比很有帮助。在尝试了最小化函数的不同算法实现之后,我发现牛顿共轭梯度是最有用的。在检查了它的返回值之后,它似乎与八度音阶中的fminunc相当。我在下面的python中包含了我的实现,以优化theta。
这里有更多关于感兴趣函数的信息:http://docs.scipy.org/doc/scipy-0.10.0/reference/tutorial/optimize.html
而且,看起来您正在学习Coursera机器学习课程,但使用的是Python。你可以去看看http://aimotion.blogspot.com/2011/11/machine-learning-with-python-logistic.html;这家伙也在做同样的事情。
看来你得换成
scipy
。在那里你可以找到所有基本的优化算法。
http://docs.scipy.org/doc/scipy/reference/optimize.html
相关问题 更多 >
编程相关推荐