文章目录
1. 逻辑回归(Logistic)
用于解决二元分类问题
1. 介绍
从两个备选类中,将给定数据分到这两个类之中的一个类去。
1. 逻辑函数/模型(logit model)
Logit函数
F
(
x
)
=
1
1
+
e
−
x
F(x) = \frac{1}{1+e^{-x}}
F(x)=1+e−x1
取值:当f(x)≥0.5,取y = 1,否则取y = 0
注意观察Logit函数导数的样子
2. Logit与二元回归
我们可以将f(x)看作是“在给定输入x下,y=1的概率”即
P
(
y
=
1
∣
x
)
P(y = 1 | x)
P(y=1∣x)
于是, 可以得到
P
(
y
=
1
∣
x
)
=
f
(
x
)
=
1
1
+
e
−
(
θ
0
+
θ
1
x
)
P(y = 1 | x) = f( x ) = \frac{1}{1+e^{-(\theta_{0}+\theta_{1}x)}}
P(y=1∣x)=f(x)=1+e−(θ0+θ1x)1
3. 使用逻辑回归解决二元分类问题
P
(
y
=
1
∣
x
;
θ
)
=
f
(
x
;
θ
)
=
1
1
+
e
−
θ
T
x
P(y = 1 | x; \theta) = f(x; \theta) = \frac{1}{1+e^{-\theta^{T}x}}
P(y=1∣x;θ)=f(x;θ)=1+e−θTx1
解释:求训练得到的系数
θ
\theta
θ,给定x下y=1的概率。也就等于后面的
1
1
+
e
−
θ
T
x
\frac{1}{1+e^{-\theta^{T}x}}
1+e−θTx1
θ
\theta
θ为向量,
θ
=
[
θ
0
,
θ
1
,
θ
2
,
.
.
.
]
\theta = [\theta_{0}, \theta_{1},\theta_{2},...]
θ=[θ0,θ1,θ2,...]
x
x
x也向量,
x
=
[
1
,
x
1
,
x
2
,
.
.
.
]
x = [1, x{1},x{2},...]
x=[1,x1,x2,...] [^2]:X从1开始的原因是:线性拟合的的一个参数是
1
∗
θ
1*\theta
1∗θ
θ
T
x
=
∑
i
=
0
θ
i
x
i
\theta^{T}x = \sum_{i=0}\theta_{i}x_{i}
θTx=∑i=0θixi (x0=1)
2. 使用Logit进行预测的模型解释
1. 损失函数定义
P
(
y
=
1
∣
x
;
θ
)
=
f
(
x
;
θ
)
=
1
1
+
e
−
θ
T
x
P(y = 1 | x; \theta) = f(x; \theta) = \frac{1}{1+e^{-\theta^{T}x}}
P(y=1∣x;θ)=f(x;θ)=1+e−θTx1
损失函数:
J
(
θ
)
=
p
=
−
∑
n
=
1
N
[
y
(
i
)
l
n
(
P
(
Y
=
1
∣
X
=
x
(
i
)
;
θ
)
+
(
1
−
y
(
i
)
)
l
n
(
1
−
P
(
Y
=
1
∣
X
=
x
(
i
)
;
θ
)
)
]
J(\theta) = p = -\sum\limits_{n=1}^N[y^{(i)}ln(P(Y = 1|X = x^{(i)}; \theta)+(1-y^{(i)})ln(1-P(Y=1|X=x^{(i)};\theta))]
J(θ)=p=−n=1∑N[y(i)ln(P(Y=1∣X=x(i);θ)+(1−y(i))ln(1−P(Y=1∣X=x(i);θ))]
2. 损失函数的解释
对于给定第i个模型的概率, y i y^{i} yi表示第i个数据为1,它乘以 l n ( P ( Y = 1 ∣ X = x i ; θ ) ln(P(Y = 1|X = x^{i}; \theta) ln(P(Y=1∣X=xi;θ)表示乘以在参数 θ \theta θ下 x = x ( i ) x = x^{(i)} x=x(i)的条件下 y为1的概率,如果猜测符合实际,这个值将会=0。同理,右边 ( 1 − y ( i ) ) l n ( 1 − P ( Y = 1 ∣ X = x ( i ) ; θ ) ) ] (1-y^{(i)})ln(1-P(Y=1|X=x^{(i)};\theta))] (1−y(i))ln(1−P(Y=1∣X=x(i);θ))]在预测正确的情况下也会趋于0。故此,损失函数 J ( θ ) J(\theta) J(θ)较好的表示了预测值和真值的相差程度,因此将至用于度量模型的损失值。
3. 损失函数的特点
损失函数是凸函数,可导
▽
θ
J
(
θ
)
=
∑
i
x
(
i
)
(
f
(
x
(
i
)
;
θ
)
−
y
(
i
)
)
\triangledown_{\theta}J(\theta) = \sum\limits_{i}x^{(i)}(f(x^{(i)};\theta)-y^{(i)})
▽θJ(θ)=i∑x(i)(f(x(i);θ)−y(i))
4. 计算方式
- 随机初始化
- 计算梯度
- 梯度下降
5. Logit函数求梯度
(过程略)关键结论如下
- f ( Z ) ′ = ( 1 1 + e Z ) ′ = . . . = f ( Z ) [ 1 − f ( Z ) ] f(Z)' = (\frac{1}{1+e^{Z}})' = ...= f(Z)[ 1 - f(Z)] f(Z)′=(1+eZ1)′=...=f(Z)[1−f(Z)]
- l ( θ ) = l o g L ( θ ) = l o g ( ∏ i = 0 n y i P i ∗ ∏ i = 0 ≡ 0 n ( 1 − y i ) ( 1 − P i ) ) l(\theta)=logL(\theta) = log(\prod\limits_{i=0}^ny_{i}P_{i}*\prod\limits_{i=0\equiv0}^n(1-y_{i})(1-P_{i})) l(θ)=logL(θ)=log(i=0∏nyiPi∗i=0≡0∏n(1−yi)(1−Pi))
- d l n ( θ ) d θ = ∑ i = 1 N ( y i − P i ) x i \frac{dln(\theta)}{d\theta}=\sum\limits_{i=1}^N(y_i - P_i)x_i dθdln(θ)=i=1∑N(yi−Pi)xi
-
l
o
g
(
L
(
θ
)
)
log(L(\theta))
log(L(θ))为期望,我们需要最大化期望,这需要梯度上升法。为满足一般使用梯度下降法的习惯,故取
l
o
s
s
(
θ
)
=
−
l
(
θ
)
loss(\theta)=-l(\theta)
loss(θ)=−l(θ)。由此,对loss求
θ
\theta
θ求导就为
∂
l
o
s
s
(
θ
)
)
∂
θ
=
∑
i
=
1
N
(
P
i
−
y
i
)
x
\frac{\partial loss(\theta))}{\partial \theta} = \sum\limits_{i=1}^N(P_i-y_i)x
∂θ∂loss(θ))=i=1∑N(Pi−yi)x
【实验2.2 使用Logit模型来对垃圾短信进行分类】