逻辑回归算法是分类算法,名字虽然叫回归,但逻辑回归算法实际上是一种分类算法,它适用于标签y取值离散的情况
在分类问题中,我们尝试预测的是结果是否属于某一个类
- 判断一封电子邮件是否是垃圾邮件;
- 判断一次金融交易是否是欺诈;
- 判断肿瘤是恶性还是良性;
规律:结果可以分为有限个类别的情况
逻辑回归模型的假设是: h θ ( x ) = g ( θ T x ) h_\theta(x) = g(\theta^Tx) hθ(x)=g(θTx)其中,X代表特征向量, θ \theta θ代表参数,g代表激活函数,一个常用的激活函数为S形函数(Sigmoid function),公式为: g ( z ) = 1 1 + e ( − z ) g(z) = \frac{1}{1+e^{(-z)}} g(z)=1+e(−z)1
h
θ
(
x
)
h_\theta(x)
hθ(x)的作用是:
对于给定的输出变量,根据选择的参数计算输出变量等于1的可能性,即:
P
(
y
=
1
∣
x
;
θ
)
=
h
θ
(
x
)
P(y=1|x;\theta) = h_\theta(x)
P(y=1∣x;θ)=hθ(x)
P
(
y
=
0
∣
x
;
θ
)
=
1
−
h
θ
(
x
)
P(y=0|x;\theta) =1- h_\theta(x)
P(y=0∣x;θ)=1−hθ(x)
P
(
y
∣
x
;
θ
)
=
h
θ
(
x
)
y
(
1
−
h
θ
(
x
)
)
(
1
−
y
)
P(y|x;\theta) = h_\theta(x)^y(1-h_\theta(x))^{(1-y)}
P(y∣x;θ)=hθ(x)y(1−hθ(x))(1−y)
公式解释:
如果对于给定的x,通过已经确定的参数计算得出
h
θ
(
x
)
=
0.7
h_\theta(x) = 0.7
hθ(x)=0.7则表示y有70%的几率为正类,相应地y为负责的几率为1-0.7=0.3
得到这样一个代价函数以后,我们便可以用梯度下降算法来求损失函数的最小值
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta_j:=\theta_j-\alpha \frac{\partial}{\partial\theta_j}J(\theta)
θj:=θj−α∂θj∂J(θ)
θ
j
:
=
θ
j
−
a
1
m
∑
i
=
1
m
(
(
h
θ
(
x
i
)
−
y
(
i
)
)
x
(
i
)
)
\theta_j:=\theta_j - a\frac{1}{m}\sum_{i=1}^m((h_\theta(x^i)-y^{(i)})x^{(i)})
θj:=θj−am1i=1∑m((hθ(xi)−y(i))x(i))
问题1:带正则化项的LR损失函数怎么写?
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) l o g ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( 1 ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta) = \frac{1}{m}\sum_{i=1}^m[-y^{(i)}log(h_\theta(x^{(i)}))-(1-y^{(i)})log(1-h_\theta(x^{(1)}))]+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2 J(θ)=m1i=1∑m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(1)))]+2mλj=1∑nθj2
问题2:带正则化项的LR参数更新公式怎么写?
θ
j
:
=
θ
j
−
a
[
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
+
λ
m
θ
j
]
\theta_j:=\theta_j-a[\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}+\frac{\lambda}{m}\theta_j]
θj:=θj−a[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]
误差的表示方法
A
c
c
=
真
阳
性
+
真
阴
性
t
o
t
a
l
(
真
阳
性
+
假
阳
性
+
真
阴
性
+
假
阴
性
)
Acc = \frac{真阳性+真阴性}{total(真阳性+假阳性+真阴性+假阴性)}
Acc=total(真阳性+假阳性+真阴性+假阴性)真阳性+真阴性
准确率的局限性:类偏斜或者说数据不平衡
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision =\frac{TP}{TP+FP}
Precision=TP+FPTP
P
e
c
a
l
l
=
T
P
T
P
+
F
N
Pecall = \frac{TP}{TP+FN}
Pecall=TP+FNTP
2
F
1
=
1
P
+
1
R
\frac{2}{F1} = \frac{1}{P}+\frac{1}{R}
F12=P1+R1
用一个F1值来综合评估精确率和召回率,它是精确率和召回率的调和均值.当精确率和召回率都高时,F1值也会高
有时候我们对精确率和召回率并不是一视同仁,我们用一个参数
β
\beta
β来度量两者之间的关系.
F
β
=
(
1
+
β
)
2
∗
P
∗
R
β
2
∗
P
+
R
F_\beta = \frac{(1+\beta)^2*P*R}{\beta^2*P+R}
Fβ=β2∗P+R(1+β)2∗P∗R
如果
β
>
1
\beta>1
β>1,召回率有更大影响,
如果
β
<
1
\beta<1
β<1,精确率有更大影响,
如果
β
=
1
\beta=1
β=1,召回率和精确率影响力相同,和F1形式一样
T P R = T P T P + N F TPR=\frac{TP}{TP+NF} TPR=TP+NFTP灵敏度(真阳率,召回率),识别的正例比例占所有实际正例的比例