Logistic Regression
对数几率回归(Logistic Regression/Logit regression)也称逻辑回归,用于解决分类问题。在对率回归(对数几率回归的简称)中, 0≤hθ(x)≤1.
#####假设函数
假设函数为$h_\theta(x)=g(\theta^Tx)$,其中$g(z)=\frac{1}{1+e^{-z}}$,$g(z)$叫做Sigmoid Function或者Logistic Function.对数几率函数是Sigmoid函数的一种, 它将z值转化为一个接近0或1的y值, 并且其输出值在z=0z=0附近变化很陡. Sigmoid函数即形似S的函数, 对率函数是Sigmoid函数最重要的代表.
$$
{h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}}
$$
#####决策边界
“0“与”1“的分界线
代价函数
线性回归中用到的代价函数(凸函数):
$$
{J(\theta)=\frac{1}{m}\sum_{i=1}^m\frac{1}{2}\left(h_\theta(x^{(i)})-y^{(i)}\right)^2}
$$
$$
Cost\left(h_\theta(x^{(i)}),y^{(i)}\right)=\frac{1}{2}\left(h_\theta(x^{(i)})-y^{(i)}\right)^2
$$
Sigmiod函数会使代价函数变成非凸函数。若想使用梯度下降法收敛到全局最小值,需要另外定义对率回归的代价函数,得到凸函数。
对率回归中代价函数:
$$
{J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^my^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))\right]}
$$
$$
{Cost\left(h_\theta(x),y\right)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))}
$$
y的值只有0,1两种情况
梯度下降法求对率回归的代价函数参数
虽然与线性回归的更新规则看起来相同,但假设函数h(x)发生了变化,所以是两个完全不同的东西。可使用特征缩放使梯度下降得更快。
高级优化算法
计算$J(\theta)$和导数项,使用更高级的算法来最小化代价函数。
#####Conjugate gradient
共轭梯度法BFGS
L-BFGS
######优点:
不需要手动选择学习率$\alpha$,含有智能内循环(线搜索算法)自动尝试并选择好的$\alpha$;
收敛得远远快于梯度下降;
例:
代价函数:
1 | function [jVal,gradient]=costFunction(theta) |
在Octave中执行:
1 | >> options=optimset('GradObj','on','MaxIter','100'); |
“一对多”分类算法(1-n)
变成n个独立的二元分类问题,计算$h_\theta^{(1)}(x)$、$h_\theta^{(2)}(x)$…$h_\theta^{(n)}(x)$,得出最大值,选择n个分类器中可信度最高的