两者的优缺点
优点
- 模型简单,原理容易理解
- 计算代价不高,易于理解和实现
缺点 - 易过拟合
- 特征很多的时候,效果 不好
- 处理线性问题效果比较好,而对于更复杂的问题可能效果较差
逻辑回归LR推导
基本条件
- 线性回归:
∑
i
=
0
m
θ
i
x
i
\sum^m_{i=0}\theta_ix_i
∑i=0m?θi?xi?
- sigmoid函数:
g
(
z
)
=
1
1
+
e
?
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e?z1?,求导:KaTeX parse error: Expected group after '^' at position 5: g(z)^?'=g(z)(1-g(z))
- 逻辑回归:
h
θ
(
x
)
=
1
1
+
e
?
θ
T
x
h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}}
hθ?(x)=1+e?θTx1?
损失函数推导 对于分类任务:
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 似然函数:
L
(
θ
)
=
∏
i
=
1
m
(
h
θ
(
x
i
)
)
y
i
(
1
?
h
θ
(
x
i
)
)
1
?
y
i
L(\theta) = \prod^m_{i=1}(h_\theta(x_i))^{y_i}(1-h_\theta(x_i))^{1-y_i}
L(θ)=∏i=1m?(hθ?(xi?))yi?(1?hθ?(xi?))1?yi? 对数似然:
l
o
g
L
(
θ
)
=
∑
i
=
1
m
[
y
i
l
o
g
h
θ
(
x
i
)
+
(
1
?
y
i
)
l
o
g
(
1
?
h
θ
(
x
I
)
)
]
logL(\theta)=\sum^m_{i=1}[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_I))]
logL(θ)=∑i=1m?[yi?loghθ?(xi?)+(1?yi?)log(1?hθ?(xI?))] 引入
?
1
m
-\frac{1}{m}
?m1?,得到损失函数:
L
o
s
s
=
?
1
m
∑
i
=
1
m
[
y
i
l
o
g
h
θ
(
x
i
)
+
(
1
?
y
i
)
l
o
g
(
1
?
h
θ
(
x
I
)
)
]
Loss=-\frac{1}{m}\sum^m_{i=1}[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_I))]
Loss=?m1?∑i=1m?[yi?loghθ?(xi?)+(1?yi?)log(1?hθ?(xI?))]
梯度求导 目标函数为
J
(
θ
)
=
?
1
m
l
o
g
L
(
θ
)
J(\theta) = -\frac{1}{m}logL(\theta)
J(θ)=?m1?logL(θ),求最小值:
?
J
(
θ
)
?
θ
=
?
J
(
θ
)
?
h
θ
(
x
)
?
?
h
θ
(
x
)
?
θ
=
?
1
m
∑
i
=
1
m
[
y
i
1
h
θ
(
x
i
)
?
h
θ
(
x
i
)
?
θ
?
(
1
?
y
i
)
1
1
?
h
θ
(
x
i
)
?
h
θ
(
x
i
)
?
θ
]
=
?
1
m
∑
i
=
1
m
[
y
i
h
θ
(
x
i
)
?
(
1
?
y
i
)
1
?
h
θ
(
x
i
)
]
h
θ
(
x
i
)
(
1
?
h
θ
(
x
i
)
)
x
i
=
?
1
m
∑
i
=
1
m
[
y
i
(
1
?
h
θ
(
x
i
)
)
?
(
1
?
y
i
)
h
θ
(
x
i
)
]
x
i
=
?
1
m
∑
i
=
1
m
[
h
θ
(
x
i
)
?
y
i
)
]
x
i
\begin{aligned} \frac{\partial J(\theta)}{\partial \theta} &=\frac{\partial J(\theta)}{\partial h_{\theta}(x)} \cdot \frac{\partial h_{\theta}(x)}{\partial \theta} \\=-\frac{1}{m} \sum_{i=1}^{m}\left[y_{i} \frac{1}{h_{\theta}\left(x_{i}\right)} \frac{\partial h_{\theta}\left(x_{i}\right)}{\partial \theta}-\left(1-y_{i}\right) \frac{1}{1-h_{\theta}\left(x_{i}\right)} \frac{\partial h_{\theta}\left(x_{i}\right)}{\partial \theta}\right] \\=-\frac{1}{m} \sum_{i=1}^{m}\left[\frac{y_{i}}{h_{\theta}\left(x_{i}\right)}-\frac{\left(1-y_{i}\right)}{1-h_{\theta}\left(x_{i}\right)}\right] h_{\theta}\left(x_{i}\right)\left(1-h_{\theta}\left(x_{i}\right)\right) x_{i} \\ &=-\frac{1}{m} \sum_{i=1}^{m}\left[y_{i}\left(1-h_{\theta}\left(x_{i}\right)\right)-\left(1-y_{i}\right) h_{\theta}\left(x_{i}\right)\right] x_{i} \\ &\left.=-\frac{1}{m} \sum_{i=1}^{m}\left[h_{\theta}\left(x_{i}\right)-y_{i}\right)\right] x_{i} \end{aligned}
?θ?J(θ)?=?m1?i=1∑m?[yi?hθ?(xi?)1??θ?hθ?(xi?)??(1?yi?)1?hθ?(xi?)1??θ?hθ?(xi?)?]=?m1?i=1∑m?[hθ?(xi?)yi???1?hθ?(xi?)(1?yi?)?]hθ?(xi?)(1?hθ?(xi?))xi??=?hθ?(x)?J(θ)???θ?hθ?(x)?=?m1?i=1∑m?[yi?(1?hθ?(xi?))?(1?yi?)hθ?(xi?)]xi?=?m1?i=1∑m?[hθ?(xi?)?yi?)]xi??
每次梯度下降,迭代后的参数:
θ
j
?
=
θ
j
?
α
1
m
∑
i
=
1
m
[
h
θ
(
x
i
)
?
y
i
)
]
x
i
\left.\theta_{j}^{*}=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left[h_{\theta}\left(x_{i}\right)-y_{i}\right)\right] x_{i}
θj??=θj??αm1?∑i=1m?[hθ?(xi?)?yi?)]xi?
α
\alpha
α是学习率
回归和分类的区别
- 两者的预测目标变量类型不同,回归问题是连续变量,分类问题离散变量
- 回归问题是定量问题,分类问题是定性问题
- 回归目标是得到最优拟合,而分类目标是得到决策边界
- 评价指标不同:回归的评价指标通常是MSE,分类指标通常是Accuracy, Prescision, Recall
逻辑回归特征是否归一化
逻辑回归本身不受量纲影响,但是其使用梯度下降法求解参数量纲影响大,如果不进行特征归一化,可能由于变量不同量纲导致参数迭代求解缓慢
如何提升LR的模型性能
- 构造更多的数据,无论评估模型还是训练,都会更加可靠
- 挖掘更有价值的Feature,即特征工程
- 加入正则化项,L1/L2.交叉验证确定最优的参数。这会加快模型开发速度,会自动化筛选变量
逻辑回归为啥要做特征离散化
非线性:逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;离散特征的增加和减少都很容易,易于模型的快速迭代 速度快:稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展 鲁棒性:离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是“年龄>30是1,否则0”。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大 的干扰 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力 简化模型:特征离散化后,起到了简化逻辑回归模型的作用,降低了模型过拟合的风险
最小二乘法在什么条件下与极大似然估计等价
当模型估计值和真实值间的残差项服从均值是0的高斯分布时,就有最小二乘估计和最大似然估计等价
逻辑回归为什么不用平方损失函数
- 因为平方损失函数权重更新过慢,采用交叉熵损失函数可以完美解决过慢的问题,它具有误差大的时候,权重更新快;误差小的时候,权重更新慢的良好性质
- sigmoid作为激活函数的时候,如果采用均方误差损失函数,那么这是一个非凸优化问题,不易求解,容易陷入局部最优解。而采用交叉熵损失函数依然是一个凸优化问题
LR可以处理非线性情况吗?
可以,同样可以使用核方法
LR的参数可以初始化0吗?
可以 在逻辑回归中,
y
^
=
sigmoid
?
(
w
T
x
+
b
)
\hat{y}=\operatorname{sigmoid}\left(w^{T} x+b\right)
y^?=sigmoid(wTx+b)
sigmoid
?
sin
?
(
t
)
=
1
1
+
e
?
t
\operatorname{sigmoid}^{\sin }(t)=\frac{1}{1+e^{-t}}
sigmoidsin(t)=1+e?t1?
sigmoid
?
′
(
t
)
=
sigmoid
?
(
t
)
?
(
1
?
sigmoid
?
(
t
)
)
\operatorname{sigmoid}^{\prime}(t)=\operatorname{sigmoid}(t) \cdot(1-\operatorname{sigmoid}(t))
sigmoid′(t)=sigmoid(t)?(1?sigmoid(t)) Loss
=
?
y
ln
?
y
^
?
(
1
?
y
)
ln
?
(
1
?
y
^
)
=-y \ln \hat{y}-(1-y) \ln (1-\hat{y})
=?ylny^??(1?y)ln(1?y^?) 因此在LR的反向传播中,我们假设
w
=
[
w
1
,
w
2
]
T
w=[w_1,w_2]^T
w=[w1?,w2?]T,则
w
1
?
=
w
1
?
α
.
?
L
o
s
s
?
w
1
w^*_1 = w_1-\alpha.\frac{\partial{Loss}}{\partial{w_1}}
w1??=w1??α.?w1??Loss? 而
?
?Loss?
?
w
1
=
?
?Loss?
?
y
^
?
y
^
?
(
w
T
x
+
b
)
?
?
(
w
T
x
+
b
)
?
w
1
\frac{\partial \text { Loss }}{\partial w_{1}}=\frac{\partial \text { Loss }}{\partial \hat{y}} \cdot \frac{\hat{y}}{\partial\left(w^{T} x+b\right)} \cdot \frac{\partial\left(w^{T} x+b\right)}{\partial w_{1}}
?w1???Loss??=?y^???Loss????(wTx+b)y^????w1??(wTx+b)?
=
(
?
y
y
^
?
1
?
y
1
?
y
^
)
?
(
y
^
(
1
?
y
^
)
)
?
x
1
=\left(-\frac{y}{\hat{y}}-\frac{1-y}{1-\hat{y}}\right) \cdot(\hat{y}(1-\hat{y})) \cdot x_{1}
=(?y^?y??1?y^?1?y?)?(y^?(1?y^?))?x1?
=
(
?
y
+
y
^
)
?
x
1
=(-y+\hat{y}) \cdot x_{1}
=(?y+y^?)?x1?
?
L
o
s
s
?
b
=
y
^
?
y
\frac{\partial L o s s}{\partial b}=\hat{y}-y
?b?Loss?=y^??y 因而
w
1
?
=
w
1
?
α
(
y
^
?
y
)
?
x
1
w_{1}^{*}=w_{1}-\alpha(\hat{y}-y) \cdot x_{1}
w1??=w1??α(y^??y)?x1?
w
2
?
=
w
2
?
α
(
y
^
?
y
)
?
x
2
w_{2}^{*}=w_{2}-\alpha(\hat{y}-y) \cdot x_{2}
w2??=w2??α(y^??y)?x2?
b
?
=
b
?
α
(
y
^
?
y
)
b^{*}=b-\alpha(\hat{y}-y)
b?=b?α(y^??y) 可以看出,就算初始
w
1
,
w
2
,
b
w_1,w_2,b
w1?,w2?,b设为0,后续梯度还是会更新
|