逻辑回归(Logistic Regression)
对于分类问题(Classification problem),也就是预测的变量 y 是一个离散值(比如y={0,1}),可以使用**逻辑回归(Logistic Regression)**来处理。逻辑回归的假设函数满足:0≤hθ(x)≤1
假设函数(Hypothesis Representation)
hθ(x)=g(θTx)g(z)=1+e−z1}hθ(x)=1+e−θTx1
-
g(z) 称作 (sigmoid函数/logistic函数),它的值域在 (0,1) 范围内,所以假设函数的值域也在 (0,1) 之间。下面是g(z)的函数图像:

-
假设函数hθ(x) 表示的是对于输入x,它的真实值 y 是 1 的概率估计。也可以表示为:hθ(x)=P(y=1∣x;θ)
-
P(y=0∣x;θ)+P(y=1∣x;θ)=1P(y=0∣x;θ)=1−P(y=1∣x;θ)
-
决策边界(Decision Boundary):给假设函数一个边界,边界两边的值分别是 0 和 1,通过这种方式输出离散值。比如我们以hθ(x)=0.5为界,也就是以θTX=0为边界,大于0的值为1,小于0的值为0。
代价函数(Cost Function)
如果简单的套用线性回归的代价函数:J(θ)=m1∑i=1m21(hθ(x(i))−y(i))2,会发现J(θ)不是一个凸函数(Non-convex),也就没法进行梯度下降。
逻辑回归的代价函数:
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
Cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x))y=1y=0
关于cost的意义,画一张图就很好理解:

代价函数的式子也可以写成下面这个更加紧凑的形式:
J(θ)=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i))]
在这里梯度下降的意义也是让J(θ)最小化,代入梯度下降的一般算法并求导可得下面的形式:
repeatuntilconvergence{θj:=θj−αi=1∑m(hθ(x(i))−y(i))∗xj(i)}
这个式子跟线性回归的基本一样,但是期内不得代价函数并不相同。
另外逻辑回归为了更好的效率,也要进行特征缩放。
高级优化
对于给定参数θ,如果我们能够求出:
- J(θ)
- ∂θj∂J(θ)
我们有一下几个算法:
后三个算法比梯度下降更加优秀,它们既不需要手动调整参数$\alpha $,运行速度也比梯度下降快。它们唯一的缺陷就是太难了。
多元分类:一对多(Multi-class classification: One-vs-all)
多元分类处理的问题对象是预测值存在多个的情况:y=1,2,3,4,...
如果有 n 个可能值,我们只需要进行对应的 n 次的逻辑回归即可。假设函数 hθ(i)(x) 表示对于输入 x ,预测 y=i 的概率,并从中选一个最大的 i 作为最后的预测值。也就是maxihθ(i)(x)
参考资料
[1].吴恩达机器学习 第七章-Logistic 回归