定义
逻辑回归( Logistics Regression)是一种以广义的线性模型假设来拟合自变量与因变量之间关系的方法。
基本原理
- 函数假设:广义线性函数 f ( x ) = 1 1 + e − ( w x + b ) = 1 1 + e − w T x f(x)=\frac{1}{1+e^{-(wx+b)}}=\frac{1}{1+e^{-\textbf{w}^{T}\textbf{x}}} f(x)=1+e−(wx+b)1=1+e−wTx1
- 损失函数:交叉熵损失函数 L ( y , y ^ ) = − ( y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) ) L(y,\hat{y})=-(ylog\hat{y}+(1-y)log(1-\hat{y})) L(y,y^)=−(ylogy^+(1−y)log(1−y^))
- 学习方法:梯度下降法
逻辑回归虽然是回归模型,但常用于二分类场景。模型预测的实际是样本属于正类( y = 1 y=1 y=1)的概率,并设置阈值(一般为0.5),当概率大于该阈值时则为正类,否则为负类。
逻辑回归模型假设实际上是线性回归模型与sigmoid函数的结合:
f
(
x
)
=
1
1
+
e
−
w
T
x
f(\textbf{x})=\frac{1}{1+e^{-\textbf{w}^{T}\textbf{x}}}
f(x)=1+e−wTx1
由于
y
∈
{
0
,
1
}
y\in\{0,1\}
y∈{0,1},且假设
y
y
y服从伯努利分布(?),存在
p
(
y
=
1
∣
x
)
=
f
(
x
)
p(y=1|x)=f(x)
p(y=1∣x)=f(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)
从而
p
(
y
∣
x
)
=
p
y
(
1
−
p
)
1
−
y
p(y|x)=p^{y}(1-p)^{1-y}
p(y∣x)=py(1−p)1−y,其中
p
=
p
(
y
=
1
∣
x
)
p=p(y=1|x)
p=p(y=1∣x)
利用极大似然估计
max
w
L
(
w
)
=
∏
i
=
1
n
p
(
y
(
i
)
∣
x
(
i
)
)
=
∏
i
=
1
n
p
y
(
i
)
(
1
−
p
)
1
−
y
(
i
)
\max\limits_{\textbf{w}}L(\textbf{w})=\prod_{i=1}^{n}p(y^{(i)}|x^{(i)})=\prod_{i=1}^{n}p^{y^{(i)}}(1-p)^{1-y^{(i)}}
wmaxL(w)=∏i=1np(y(i)∣x(i))=∏i=1npy(i)(1−p)1−y(i)
取对数
max
w
l
n
L
(
w
)
=
∑
i
=
1
n
[
y
(
i
)
l
n
p
+
(
1
−
y
(
i
)
)
l
n
(
1
−
p
)
]
\max\limits_{\textbf{w}}lnL(\textbf{w})=\sum_{i=1}^{n}[y^{(i)}lnp+(1-y^{(i)})ln(1-p)]
wmaxlnL(w)=∑i=1n[y(i)lnp+(1−y(i))ln(1−p)]
等价于
min
w
J
(
w
)
=
l
n
L
(
w
)
=
−
∑
i
=
1
n
[
y
(
i
)
l
n
p
+
(
1
−
y
(
i
)
)
l
n
(
1
−
p
)
]
\min\limits_{\textbf{w}}J(\textbf{w})=lnL(\textbf{w})=-\sum_{i=1}^{n}[y^{(i)}lnp+(1-y^{(i)})ln(1-p)]
wminJ(w)=lnL(w)=−∑i=1n[y(i)lnp+(1−y(i))ln(1−p)]
这个损失函数就称为交叉熵损失函数。
利用梯度下降法求解该最小化问题,
首先注意一个公式:
d
p
d
w
=
(
1
1
+
e
−
w
T
x
)
′
=
(
1
1
+
e
−
w
T
x
)
2
e
−
w
T
x
x
=
p
(
1
−
p
)
x
\frac{dp}{dw}=(\frac{1}{1+e^{-\textbf{w}^{T}\textbf{x}}})'=(\frac{1}{1+e^{-\textbf{w}^{T}\textbf{x}}})^2e^{-\textbf{w}^{T}\textbf{x}}\textbf{x}=p(1-p)\textbf{x}
dwdp=(1+e−wTx1)′=(1+e−wTx1)2e−wTxx=p(1−p)x
则计算梯度:
d
J
d
w
=
−
∑
i
=
1
n
[
y
(
i
)
p
−
1
p
′
−
(
1
−
y
(
i
)
)
(
1
−
p
)
−
1
p
′
]
\frac{dJ}{dw}=-\sum_{i=1}^{n}[y^{(i)}p^{-1}p'-(1-y^{(i)})(1-p)^{-1}p']
dwdJ=−∑i=1n[y(i)p−1p′−(1−y(i))(1−p)−1p′]
d
J
d
w
=
∑
i
=
1
n
[
(
1
−
y
(
i
)
)
p
x
(
i
)
−
y
(
i
)
(
1
−
p
)
x
(
i
)
]
=
∑
i
=
1
n
(
p
−
y
(
i
)
)
x
(
i
)
\frac{dJ}{dw}=\sum_{i=1}^{n}[(1-y^{(i)})p\textbf{x}^{(i)}-y^{(i)}(1-p)\textbf{x}^{(i)}]=\sum_{i=1}^{n}(p-y^{(i)})\textbf{x}^{(i)}
dwdJ=∑i=1n[(1−y(i))px(i)−y(i)(1−p)x(i)]=∑i=1n(p−y(i))x(i)
可看出梯度与sigmoid函数求导无关,更新速度较快较稳定
优缺点
- 优点
- 实现简单,广泛的应用于工业问题上
- 可解释性强:模型的参数直观体现了每一个自变量对因变量的影响强弱
- 观测样本概率分数
- 缺点
- 函数假设较简单:只能处理线性可分的数据,准确率不高
应用场景
- 分类预测并给出概率:可以在拟合到已知数据集后用于预测自变量所属于的类别以及类别的概率。
- 变量可解释性:可以用于量化因变量与自变量之间关系的强度。
其他问题
- 逻辑回归的损失函数为什么不用平方损失函数?
- 完全预测错误时的损失远远小于交叉熵损失函数的损失
- 用了平方损失目标函数会为非凸函数,梯度下降容易陷入局部最优
- 逻辑回归输出的值是0到1之间的值,这个值是真实的概率吗?
- 基本上不是真实概率
相关概念
- 极大似然估计:从模型总体随机抽取n组样本观测值,求解参数估计量,使得n组观测值出现的概率最大。
参考资料
★逻辑回归推导过程
逻辑回归面试题汇总(整理)
得到了一堆好问题虽然只能靠自己解答,放在【其他问题】里了
逻辑回归目标函数是凸函数
★为什么不用平方误差(MSE)作为Logistic回归的损失函数?
逻辑回归输出的值是真实的概率吗?
PS:空着的之后补充~问号处待具体落实