标签:逻辑回归
逻辑回归不同于线性回归,它实际上一种分类方法,用于二分类问题(y=0或者1)。逻辑回归模型如下:
即当>=0.5时,预测输出值y=1;否则预测输出值y=0;且有:
所谓Decision Boundary就是能够将所有数据点进行很好地分类的h(x)边界。
【例1】
由图可知:
对应的线性回归模型为:
决策边界为粉色直线:
【例2】
由图可知:
对应的线性回归模型为:
决策边界为粉色曲线:
代价函数 J(θ)的推导如下:
对于每个样本:
于是似然函数为:
则对数似然函数为:
那么代价函数J(θ)取为,即
因为最大似然估计是求使l(θ)最大的θ,那么这个θ也是使代价函数J(θ)最小的θ。
其中α为学习率。
偏导的推导过程如下:
除了gradient descent 方法之外,我们还有很多方法可以使用,如下图所示,左边是另外三种方法,右边是这三种方法共同的优缺点,无需选择学习率α,更快,但是更复杂。
matlab中已经帮我们实现好了一些优化参数θ的方法,那么这里我们需要完成的事情只是写好cost function,并告诉系统,要用哪个方法进行最优化参数。比如我们用‘GradObj’, Use the GradObj option to specify that FUN also returns a second output argument G that is the partial derivatives of the function df/dX, at the point
伪代码:
cost function具体实现如下:
function [J, grad] = costFunction(theta, X, y)
m = length(y); % number of training examples
J = 0;
grad = zeros(size(theta));
J=-sum(y.*(log(sigmoid(X*theta)))+(1.0-y).*(log(1.0-sigmoid(X*theta))))/m;
for j=1:size(theta)
grad(j)=sum((sigmoid(X*theta)-y).*X(:,j))/m;
end
=============================================================
end
% Set options for fminunc
options = optimset(‘GradObj‘, ‘on‘, ‘MaxIter‘, 400);
% Run fminunc to obtain the optimal theta
[theta, cost]=fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
即对于一个输入样本x,获得最大hθ(x)的类就是x所分到的类。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:逻辑回归
原文地址:http://blog.csdn.net/adminabcd/article/details/47043577