如果在遇到一些分类问题,用回归算法来做预测时,我们会发现这些算法得出的模型会不尽人意。甚至在一些很明显的情况下,函数值不会比1大或者比0小,即目标值
y∈{0,1}
。
针对这种情况,我们改变假设函数
hθ(x)
,把假设函数写成如下模型:
hθ(x)=g(θTx)=11+e−θTx
其中
g(z)=11+e−z
被称为逻辑斯蒂函数。这个函数作图如下:
从图形可以看出,当自变量 z 趋于无穷大时,函数值趋近1,反之,当自变量
再介绍一个逻辑斯蒂函数导数的性质。
g′(z)=ddz11+e−z=1(1+e−z)2(e−z)=11+e−z∗(1−1(1+e−z))=g(z)(1−g(z))
我们得到了逻辑斯蒂函数模型,我们如何来求 θ ?跟之前的推导一样,我们用最大似然估计来求导 θ 的值。
我们设定
P(y=1|x;θ)P(y=0|x;θ)==hθ(x)1−hθx
这两个式子可以写成更简洁的形式:
p(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
我们假设有m个样本,他们之间都是独立的,我们就可以把最大似然函数写为如下:
L(θ)=p(y⃗ |X;θ)=∏i=1mp(y(i)|x(i);θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
我们为了方便求得最大似然值,我们对这个式子求对数:
l(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
我们怎样才能得到最大值,我们用 梯度上升的方法,对参数 θ 进行迭代,使得值达到最大,即 θ:=θ+α∇θl(θ) ,其中 α 是学习率。
接下来,我们需要求 l(θ) 的梯度:
∂∂θjl(θ)=(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−hθ(x))xj
上面的推导过程运用了逻辑斯蒂回归求导公式, g′(z)=g(z)(1−g(z)) 。
把求导的结果代入梯度上升公式:
θ:=θj+α((y(i)−hθ(x(i)))x(i)j)
到这里就得到我们迭代过程中更新 θ 参数的式子。这个式子与线性回归的式子很相似,不同的是假设函数 hθ(x(i)) ,一个是线性回归模型,一个是逻辑斯蒂回归模型。