这里是斯坦福大学机器学习网络课程的学习笔记。课程地址是:https://class.coursera.org/ml-2012-002/lecture/index
分类问题:比如性格分类问题、新闻话题分类问题等,需要预测出不同类别的问题。
一般设定二分类问题预测值为0或1,下面以二分类为主介绍,后续会将多分类问题。
logistic回归模型解分类问题:
我们已经了解了线性回归问题的预测函数是:h(a,X)= aTX,分类问题的预测函数跟这个不同。
分类问题的一个预测函数是:h(a,X)= g( aTX ),且是y=1当h(a,X)>=0.5; y=0当h(a,X)<0.5,
其中g(z)=1/(1+e-z),满足 0< g(z) <1 ,g(z)被称作sigmoid函数或者logistic函数,
基于logistic函数解分类问题的模型称作logistic回归模型。
logistic(sigmoid) 函数图形如下:
注:线性回归问题因为是预测出连续值,且对值取值范围没有限定,所以aTX是满足的,但对分类问题不合适。
从sigmoid函数图形可知,当z>=0时,g(z)>=0.5,即y=1,而当z<0时,g(z)<0.5, 即y=0.
z=0, 称为Decusion Boundary,是分类问题的分界线。 z=0 等价于 aTX=0,所以求解出a,即可预测分类问题。
但a并不总是可求的,所以还是要引入基于最小成本函数的数值解法。
梯度下降法求解logistic回归模型:
成本函数定义为:cost(ha(x),y) = -log( ha(x) ), 若y=1
= -log( 1- ha(x)), 若y=0
或者直接写为 cost(ha(x),y) = -y*log( ha(x) ) - (1-y)*log( 1- ha(x))
梯度下降法:
J=1/m*(-y'*log(sigmoid(X*a))-(1-y)'*log(1-sigmoid(X*a)));
grad=1/m*((sigmoid(X*a)-y)'*X)';