一直对逻辑回归的认识不够深,所以想要借着本文整理一下与逻辑回归有关的知识。能力有限,先挖坑,之后慢慢填吧。
线性回归
从线性回归说起。假设我们有n个样本,每个样本中有d个属性。线性回归的思路是:我想要用这d个属性的线性组合来预测标签y,即
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
d
x
d
+
b
f (x)=w_1x_1+w_2x_2+...+w_dx_d+b
f(x)=w1x1+w2x2+...+wdxd+b
也可以写成
f
(
x
)
=
w
T
x
+
b
f(x) = w^T x + b
f(x)=wTx+b
f
(
x
)
f(x)
f(x)就是我们的预测值了。
那么,如何评价我们预测的准不准(或者说模型的好坏)呢?
一个简单的方法就是计算预测值和结果值的差:
y
−
f
(
x
)
y-f(x)
y−f(x),得到的差越小(或者称为损失越小),即模型效果越好。
在整个样本集中,就是要让以下损失函数最小。
L
1
=
argmin
w
,
b
∑
i
=
1
n
∣
y
−
f
(
x
)
∣
L1=\underset{w,b}{\operatorname{argmin}}\sum_{i=1}^{n}|y-f(x)|
L1=w,bargmini=1∑n∣y−f(x)∣
或者
L
2
=
argmin
w
,
b
∑
i
=
1
n
(
y
−
f
(
x
)
)
2
L2 = \underset{w,b}{\operatorname{argmin}}\sum_{i=1}^{n}(y-f(x))^2
L2=w,bargmini=1∑n(y−f(x))2
其中L1是绝对值损失函数,L2是平方损失函数。
(因为每个样本的损失
y
−
f
(
x
)
y-f(x)
y−f(x)有可能大于0,也有可能小于0,不取平方或者绝对值的话,他们会相互抵消掉)
以L2为例,要让L2最小化,也就是要让L2分别对w和b求导,导数为0的值就是w和b的最优解了。
∂
E
(
L
2
)
∂
w
=
2
(
∑
i
=
0
n
(
y
i
−
b
)
x
i
−
w
∑
i
=
1
n
x
i
2
)
\frac{\partial E_{(L2)}}{\partial w} = 2(\sum_{i=0}^{n}(y_i - b)x_i -w\sum_{i=1}^{n}x_i^2)
∂w∂E(L2)=2(i=0∑n(yi−b)xi−wi=1∑nxi2)
∂
E
(
L
2
)
∂
b
=
2
(
∑
i
=
1
n
(
y
i
−
w
x
i
)
−
m
b
)
\frac{\partial E_{(L2)}}{\partial b} = 2(\sum_{i=1}^{n}(y_i - wx_i) - mb)
∂b∂E(L2)=2(i=1∑n(yi−wxi)−mb)
为什么导数为0就是他们的最优解呢?
设
a
2
=
(
y
−
f
(
x
)
)
2
设 a^2 = (y-f(x))^2
设a2=(y−f(x))2,明显,
a
2
a^2
a2是一个凸函数,当凸函数的导数等于0的时候,也就是在a=0的时候有最小值。
逻辑回归
上面讲的线性回归一般是用于回归任务中。那遇到分类任务怎么办呢?这时候,就轮到我们逻辑回归进场了。
在二分类任务中,
y
∈
{
0
,
1
}
y\in{\{0,1\}}
y∈{0,1}。我们的预测函数为
Z
=
W
T
X
+
b
Z=W^TX + b
Z=WTX+b,当Z<0时判为负例,Z>0时判为正例。
那它的平方损失函数就是
L
2
=
argmin
w
,
b
∑
i
=
1
n
(
y
≠
f
(
x
)
)
2
L2 = \underset{w,b}{\operatorname{argmin}}\sum_{i=1}^{n}(y≠f(x))^2
L2=w,bargmini=1∑n(y̸=f(x))2
这里就有一个问题了,在Z不是处处可导的,在z=0的时候,它不可导。所以!我们就使用一个近似的函数来替代这个阶跃函数。而这个函数,我们找到了,它就符合我们的条件:
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
它的分布函数如下:
在
x
→
−
∞
x → - ∞
x→−∞时
x
=
−
1
x=-1
x=−1,
x
→
∞
x → ∞
x→∞时
x
=
1
x=1
x=1 。而且处处可微。
好,现在讲
w
T
x
+
b
w^Tx+b
wTx+b代入
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1,得到:
P
(
Y
=
1
∣
x
)
=
y
=
1
1
+
e
−
(
w
T
+
b
)
P(Y=1|x)=y=\frac{1}{1+e^{-(w^T+b)}}
P(Y=1∣x)=y=1+e−(wT+b)1
那么预测到它是负样本的概率是:
P
(
Y
=
0
∣
x
)
=
1
−
y
=
e
−
(
w
T
+
b
)
1
+
e
−
(
w
T
+
b
)
P(Y=0|x)=1-y = \frac{e^{-(w^T+b)}}{1+e^{-(w^T+b)}}
P(Y=0∣x)=1−y=1+e−(wT+b)e−(wT+b)
当我们计算正负样本的比值,并且取对数,得到:
l
o
g
i
t
(
P
)
=
l
o
g
P
(
Y
=
1
∣
x
)
P
(
Y
=
0
∣
x
)
=
l
o
g
(
1
e
−
(
w
T
+
b
)
)
=
w
T
+
b
logit(P) = log\frac{P(Y=1|x)}{P(Y=0|x)} =log(\frac{1}{e^{-(w^T+b)}}) =w^T+b
logit(P)=logP(Y=0∣x)P(Y=1∣x)=log(e−(wT+b)1)=wT+b
此时,就将问题转换为一个线性问题了。只要
l
o
g
i
t
(
P
)
>
1
logit(P)>1
logit(P)>1,则输出正样本,否则输出负样本。
接下来,我们就要确定w和b的取值了。
为什么要最大化对数似然函数来求呢?存疑