写在前头
线性回归模型可以用于回归模型的学习,当我们需要用线性模型实现分类问题比如二分类问题时,需要用一个单调可微函数将线性回归的连续结果映射到分类回归真实标记的离散值上。
推导过程
考虑二分类任务,其输出标记:
y
∈
{
0
,
1
}
y\in\{0,1\}
y∈{0,1}
但是线性回归模型产生的预测值是实值z,因此我们需要将实值z转化为0/1的离散值,最理想的函数就是“单位阶跃函数”(unit-step function):
y
=
{
0
,
z
<
0
0.5
,
z
=
0
1
,
z
>
0
y= \begin{cases} 0,z<0\\ 0.5,z=0\\ 1,z>0\\ \end{cases}
y=⎩⎪⎨⎪⎧0,z<00.5,z=01,z>0
即当预测值z大于0就判为正例,预测值z小于0就判为负例,预测值为0即可任意判别。
然而单位跃阶函数本身不连续,我们希望找到能在一定程度上近似单位阶跃函数的“替代函数”,并希望它单调可微。对数几率函数(logistic function)正好能满足这个要求:
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
从而因变量y与自变量x的表达式为:
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac{1}{1+e^{-(w^Tx+b)}}
y=1+e−(wTx+b)1
也可以写作:
l n y 1 − y = w T x + b ln\frac{y}{1-y}=w^Tx+b ln1−yy=wTx+b
注:若将y视为样本x作为正例的概率,那么1-y就是其作为反例的概率,那么两者的比值:y/(1-y)称为“几率”(odds),反映了x作为正例的相对可能性,对几率取对数则得到“对数几率”(log odds,也叫做logit)
由于“对数几率”的取值是实值,因此我们相当于用线性回归方法的预测结果去逼近真实标记的对数几率。
参数估计
前面我们已经解释过y相当于样本x作为正例的概率,那么模型可改写成:
l
n
p
(
y
=
1
∣
x
)
p
(
y
=
0
∣
x
)
=
w
T
x
+
b
ln\frac{p(y=1|x)}{p(y=0|x)}=w^Tx+b
lnp(y=0∣x)p(y=1∣x)=wTx+b
根据:
p
(
y
=
1
∣
x
)
+
p
(
y
=
0
∣
x
)
=
1
p(y=1|x)+p(y=0|x)=1
p(y=1∣x)+p(y=0∣x)=1
我们可以得到:
p ( y = 1 ∣ x ) = e w T x + b 1 + e w T x + b p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}} p(y=1∣x)=1+ewTx+bewTx+b
p
(
y
=
0
∣
x
)
=
1
1
+
e
w
T
x
+
b
p(y=0|x)=\frac{1}{1+e^{w^Tx+b}}
p(y=0∣x)=1+ewTx+b1
给定数据集D:
D
=
{
(
x
i
,
y
i
)
}
,
i
=
1
,
2
,
.
.
.
,
m
D=\{(x_i,y_i)\},i=1,2,...,m
D={(xi,yi)},i=1,2,...,m
我们通过极大似然法(maximum likelihood method)估计w和b,即令每个样本属于其真实标记的概率越大越好:
l ( w , b ) = ∑ i = 1 m l n p ( y i ∣ x i ; w , b ) l(w,b)=\sum_{i=1}^{m}lnp(y_i|x_i;w,b) l(w,b)=i=1∑mlnp(yi∣xi;w,b)
逻辑回归优点
- 直接对分类可能性建模,无需实现假设数据分布,这样就避免了假设分布不准确所带来的问题
- 不仅能够预测类别,而且可以得到不同分类的概率预测,对许多需利用概率辅助决策的任务很有用。
- 对率函数是任意阶可导的凸函数,有很好的数学性质