逻辑回归

逻辑回归

 

 

1、逻辑回归与线性回归的联系与区别   
  
2、逻辑回归的原理  
  
3、逻辑回归损失函数推导及优化  
  
4、正则化与模型评估指标  
  
5、逻辑回归的优缺点  
  
6、样本不均衡问题解决办法 
  
7、sklearn参数  
  
8、代码实现

1、逻辑回归与线性回归的联系与区别

2、逻辑回归的原理

3、逻辑回归损失函数推导及优化

4、正则化与模型评估指标

5、逻辑回归的优缺点

6、样本不均衡问题解决办法

7、sklearn参数

8、代码实现

 

 

## 1、逻辑回归与线性回归的联系与区别 

1、逻辑回归与线性回归的联系与区别

 

 

线性回归解决的是连续变量问题,那么在分类任务中可以用线性回归吗?例如判断是良性肿瘤还是恶性肿瘤,判断是垃圾邮件还是正常邮件,等等……

线性回归解决的是连续变量问题,那么在分类任务中可以用线性回归吗?例如判断是良性肿瘤还是恶性肿瘤,判断是垃圾邮件还是正常邮件,等等……

 

 

答案是也可以,但是效果不好,见下图:

答案是也可以,但是效果不好,见下图:

 

 

<img src = "https://i-blog.csdnimg.cn/blog_migrate/e4350051994f785fe1fbf010b73b5cfb.png">

 

 

图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。

图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。

 

 

$$\hat y = \begin{cases}
1,& f(x)>0.5\\
0,& f(x)<0.5
\end{cases}$$

 

𝑦̂={1,0,𝑓(𝑥)>0.5𝑓(𝑥)<0.5y^={1,f(x)>0.50,f(x)<0.5

 

 
 
 
 
 
 
 
 
 
 
 
可以看到,在途中,年龄的区分点约为19岁。
 
 

可以看到,在途中,年龄的区分点约为19岁。

 
 
 
 
 
 
 
 
 
 
 
但当数据点不平衡时,很容易影响到阈值,见以下图:
 
 

但当数据点不平衡时,很容易影响到阈值,见以下图:

 
 
 
 
 
 
 
 
 
 
 
<img src = "https://i-blog.csdnimg.cn/blog_migrate/dfce9f2649af62ce64e3edcfc8c620a9.png">img src = "https://i-blog.csdnimg.cn/blog_migrate/dfce9f2649af62ce64e3edcfc8c620a9.png">
 
 

 
 
 
 
 
 
 
 
 
 
 
可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。
 
 

可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。

 
 
 
 
 
 
 
 
 
 
 
可是这符合实际情况吗?实际情况是60岁的老人和80岁的老人都不会购买玩具,增加几位80岁的老人,并不会影响20岁以下人群购买玩具的概率。但因为拟合曲线原本的值域为$(-\infty \  \infty)$而转换后的值域为[0,1],阈值对变量偏移很敏感。$(-\infty \  \infty)$而转换后的值域为[0,1],阈值对变量偏移很敏感。
 
 

可是这符合实际情况吗?实际情况是60岁的老人和80岁的老人都不会购买玩具,增加几位80岁的老人,并不会影响20岁以下人群购买玩具的概率。但因为拟合曲线原本的值域为(−∞ ∞)(−∞ ∞) 而转换后的值域为[0,1],阈值对变量偏移很敏感。

 

 

## 2、逻辑回归的原理 

2、逻辑回归的原理

 

 

因此理想的替代函数应当预测分类为0或1的概率,当为1的概率大于0.5时,判断为1,当为1的概率小于0.5时,判断为0。因概率的值域为$[0,1]$,这样的设定比线性回归合理很多。

因此理想的替代函数应当预测分类为0或1的概率,当为1的概率大于0.5时,判断为1,当为1的概率小于0.5时,判断为0。因概率的值域为[0,1][0,1] ,这样的设定比线性回归合理很多。

 

 

常用的替代函数为Sigmoid函数,即:

常用的替代函数为Sigmoid函数,即:

 

 

$$
h(z) = \frac{1}{1+e^{-z}}
$$

 

ℎ(𝑧)=11+𝑒−𝑧h(z)=11+e−z

 

 

 

其中,$z = \theta^T x$

其中,𝑧=𝜃𝑇𝑥z=θTx

 

 

我们可以看到,当z大于0时,函数大于0.5;当函数等于0时,函数等于0.5;函数小于0时,函数小于0.5。如果用函数表示目标分到某一类的概率,我们可以采用以下“单位阶跃函数”来判断数据的类别:

我们可以看到,当z大于0时,函数大于0.5;当函数等于0时,函数等于0.5;函数小于0时,函数小于0.5。如果用函数表示目标分到某一类的概率,我们可以采用以下“单位阶跃函数”来判断数据的类别:

 

 

$$h(z) = \left\{
\begin{aligned}
0,& & z<0 \\
0.5, & & z=0 \\
1, & & z>0
\end{aligned}
\right.$$

 

ℎ(𝑧)=0,0.5,1,𝑧<0𝑧=0𝑧>0h(z)={0,z<00.5,z=01,z>0

 

 

 

若Z大于0,则判断为正例;若小于0,判断为反例;若等于0,可任意判别。由于Sigmoid函数单调且可导,函数在(0,1)之间程Z字型,可以很好的模拟二分类情况,因此很适合我们要解决的问题。  
  
接下来我们来推导逻辑回归函数的优化

若Z大于0,则判断为正例;若小于0,判断为反例;若等于0,可任意判别。由于Sigmoid函数单调且可导,函数在(0,1)之间程Z字型,可以很好的模拟二分类情况,因此很适合我们要解决的问题。

接下来我们来推导逻辑回归函数的优化

 

 

## 3、逻辑回归损失函数推导及优化

3、逻辑回归损失函数推导及优化

 

 

$$
P(y=1|x;\theta) = h_\theta (x) \\
P(y=0|x;\theta) = 1-h_\theta (x)
$$

 

𝑃(𝑦=1|𝑥;𝜃)=ℎ𝜃(𝑥)𝑃(𝑦=0|𝑥;𝜃)=1−ℎ𝜃(𝑥)P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)

 

 

 

可以写作一般公式,

可以写作一般公式,

 

 

$$P(y|x;\theta)= h(x)^y (1-h(x))^{(1-y)}$$

 

𝑃(𝑦|𝑥;𝜃)=ℎ(𝑥)𝑦(1−ℎ(𝑥))(1−𝑦)P(y|x;θ)=h(x)y(1−h(x))(1−y)

 

 

 

极大似然函数为,

极大似然函数为,

 

 

$$
L(\theta) = \prod^{m}_{i=1}h_\theta (x^{(i)})^{y^{(i)}} (1-h_\theta (x^{(i)})^{(1-y^{(i)})}
$$

 

𝐿(𝜃)=∏𝑖=1𝑚ℎ𝜃(𝑥(𝑖))𝑦(𝑖)(1−ℎ𝜃(𝑥(𝑖))(1−𝑦(𝑖))L(θ)=∏i=1mhθ(x(i))y(i)(1−hθ(x(i))(1−y(i))

 

 

 

对数极大似然函数为,

对数极大似然函数为,

 

 

$$l(\theta) = log L(\theta) = \sum^{m}_{i=1} y^{(i)}log h_\theta (x^{(i)}) + (1-y^{(i)})log (1-h_\theta (x^{(i)}))
$$

 

𝑙(𝜃)=𝑙𝑜𝑔𝐿(𝜃)=∑𝑖=1𝑚𝑦(𝑖)𝑙𝑜𝑔ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))𝑙𝑜𝑔(1−ℎ𝜃(𝑥(𝑖)))l(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))

 

 

 

损失函数为,

损失函数为,

 

 

$$
J(\theta) = -\frac{1}{m}l(\theta) = -\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)}))
$$

 

𝐽(𝜃)=−1𝑚𝑙(𝜃)=−1𝑚∑𝑖=1𝑚𝑦(𝑖)ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))(1−ℎ𝜃(𝑥(𝑖)))J(θ)=−1ml(θ)=−1m∑i=1my(i)hθ(x(i))+(1−y(i))(1−hθ(x(i)))

 

 

 

损失函数表示了预测值和真实值之间的差异程度,预测值和真实值越接近,则损失函数越小。

损失函数表示了预测值和真实值之间的差异程度,预测值和真实值越接近,则损失函数越小。

 

 

#### 思考题:为什么不直接用和线性回归一样的平方损失函数?

思考题:为什么不直接用和线性回归一样的平方损失函数?

 

 

*回答:如果和线性回归一样的平方损失函数,则损失函数的形式为$\sum^m_{i=1}(y^{(i)}-\frac{1}{1+e^{-\theta^T x}})^2$,此为非凸函数,求解复杂,而且很容易求得局部最优解为非全局最优解。*

回答:如果和线性回归一样的平方损失函数,则损失函数的形式为∑𝑚𝑖=1(𝑦(𝑖)−11+𝑒−𝜃𝑇𝑥)2∑i=1m(y(i)−11+e−θTx)2 ,此为非凸函数,求解复杂,而且很容易求得局部最优解为非全局最优解。

 

 

 

 

 

我们用梯度下降法求解,

我们用梯度下降法求解,

 

 

$$\theta:=\theta-\alpha\Delta_\theta J(\theta) = \theta + \frac{\alpha}{m}\Delta_\theta l(\theta)$$

 

𝜃:=𝜃−𝛼Δ𝜃𝐽(𝜃)=𝜃+𝛼𝑚Δ𝜃𝑙(𝜃)θ:=θ−αΔθJ(θ)=θ+αmΔθl(θ)

 

 

 

由于$g'_\theta(z) = g_\theta (z)(1-g_\theta(z))$

由于𝑔′𝜃(𝑧)=𝑔𝜃(𝑧)(1−𝑔𝜃(𝑧))gθ′(z)=gθ(z)(1−gθ(z))

 

 

<td bgcolor=#87CEEB>小练习:试证明,当$g(z) = \frac{1}{1+e^{-z}}$</td>
<td bgcolor=#87CEEB>$g'(z) = g(z)(1-g(z))$</td>
小练习:试证明,当𝑔(𝑧)=11+𝑒−𝑧g(z)=11+e−z𝑔′(𝑧)=𝑔(𝑧)(1−𝑔(𝑧))g′(z)=g(z)(1−g(z))

 

 

证明:

证明:

 

 

\begin{align*}
g'(z) 
&= \frac{-1}{(1+e^{-z})^2}(-e^{-z}) \\
&= \frac{e^{-z}}{(1+e^{-z})^2} \\
&= \frac{1}{1+e^{-z}} \cdot \frac{e^{-z}}{1+e^{-z}} \\
&= g(z)(1-g(z))
\end{align*}

 

𝑔′(𝑧)=−1(1+𝑒−𝑧)2(−𝑒−𝑧)=𝑒−𝑧(1+𝑒−𝑧)2=11+𝑒−𝑧⋅𝑒−𝑧1+𝑒−𝑧=𝑔(𝑧)(1−𝑔(𝑧))g′(z)=−1(1+e−z)2(−e−z)=e−z(1+e−z)2=11+e−z⋅e−z1+e−z=g(z)(1−g(z))

 

 

 

因此可以求得,

因此可以求得,

 

 

\begin{align*}
\frac{\partial J(\theta)}{\partial \theta_i}
&= \frac{1}{m}\sum^m_{i=1} y^{(i)}\frac{1}{h_\theta (x^{(i)})} h_\theta (x^{(i)})(1-h_\theta (x^{(i)}))x^{(i)} + (1-y^{(i)})\frac{1}{1-h_\theta (x^{(i)})}h_\theta (x^{(i)})(h_\theta (x^{(i)})-1)\\
&= \frac{1}{m}\sum^m_{i=1}y^{(i)}(1-h_\theta (x^{(i)}))x^{(i)}+(y^{(i)}-1)h_\theta (x^{(i)})x^{(i)} \\
& = \frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)}
\end{align*}

 

∂𝐽(𝜃)∂𝜃𝑖=1𝑚∑𝑖=1𝑚𝑦(𝑖)1ℎ𝜃(𝑥(𝑖))ℎ𝜃(𝑥(𝑖))(1−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+(1−𝑦(𝑖))11−ℎ𝜃(𝑥(𝑖))ℎ𝜃(𝑥(𝑖))(ℎ𝜃(𝑥(𝑖))−1)=1𝑚∑𝑖=1𝑚𝑦(𝑖)(1−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+(𝑦(𝑖)−1)ℎ𝜃(𝑥(𝑖))𝑥(𝑖)=1𝑚∑𝑖=1𝑚(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)∂J(θ)∂θi=1m∑i=1my(i)1hθ(x(i))hθ(x(i))(1−hθ(x(i)))x(i)+(1−y(i))11−hθ(x(i))hθ(x(i))(hθ(x(i))−1)=1m∑i=1my(i)(1−hθ(x(i)))x(i)+(y(i)−1)hθ(x(i))x(i)=1m∑i=1m(y(i)−hθ(x(i)))x(i)

 

 

 

可以看到,形式和线性回归很相似,这是因为他们都属于广义线性模型(GLM,可参考吴恩达-CS229 第四课)。

可以看到,形式和线性回归很相似,这是因为他们都属于广义线性模型(GLM,可参考吴恩达-CS229 第四课)。

 

 

### 逻辑回归的分布式实现

逻辑回归的分布式实现

 

 

由于单机处理能力的限制,在对大规模样本训练时,往往需要将求解过程并行化。我们知道在求解过程中,行和列都存在批向量处理的情况,我们可以按行并行和按列并行。

由于单机处理能力的限制,在对大规模样本训练时,往往需要将求解过程并行化。我们知道在求解过程中,行和列都存在批向量处理的情况,我们可以按行并行和按列并行。

 

 

#### 按行并行

按行并行

 

 

看$\frac{\partial J(\theta)}{\partial \theta_i} =\frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)}$,相当于将上个迭代步骤结果,将每个样本进行运算后求和,那么只需将样本拆分到不同机器上运算,最后在求和即可。

看∂𝐽(𝜃)∂𝜃𝑖=1𝑚∑𝑚𝑖=1(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)∂J(θ)∂θi=1m∑i=1m(y(i)−hθ(x(i)))x(i) ,相当于将上个迭代步骤结果,将每个样本进行运算后求和,那么只需将样本拆分到不同机器上运算,最后在求和即可。

 

 

#### 按列并行

按列并行

 

 

$\frac{\partial J(\theta)}{\partial \theta_i} =\frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)}$是对参数$\theta_i$进行的运算,那么只需将特征分配到不同的机器上,分别计算梯度后,再归并到完整的特征向量进行梯度更新即可。

∂𝐽(𝜃)∂𝜃𝑖=1𝑚∑𝑚𝑖=1(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)∂J(θ)∂θi=1m∑i=1m(y(i)−hθ(x(i)))x(i) 是对参数𝜃𝑖θi 进行的运算,那么只需将特征分配到不同的机器上,分别计算梯度后,再归并到完整的特征向量进行梯度更新即可。

 

 

## 4、正则化与模型评估指标

4、正则化与模型评估指标

 

 

### 正则化

正则化

 

 

我们可以在损失函数后面,加上正则化函数,即$\theta$的惩罚项,来抑制过拟合问题。

我们可以在损失函数后面,加上正则化函数,即𝜃θ 的惩罚项,来抑制过拟合问题。

 

 

#### L1正则:

L1正则:

 

 

$$
J(\theta) =\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)})) + \frac{\lambda}{m
}\sum^m_{i=1}|\theta_i|
$$

 

𝐽(𝜃)=1𝑚∑𝑖=1𝑚𝑦(𝑖)ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))(1−ℎ𝜃(𝑥(𝑖)))+𝜆𝑚∑𝑖=1𝑚|𝜃𝑖|J(θ)=1m∑i=1my(i)hθ(x(i))+(1−y(i))(1−hθ(x(i)))+λm∑i=1m|θi|

 

 

 

$$
\Delta_{\theta_i} l(\theta) = \frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)} + \frac{\lambda}{m}sgn(\theta_i)
$$

 

Δ𝜃𝑖𝑙(𝜃)=1𝑚∑𝑖=1𝑚(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+𝜆𝑚𝑠𝑔𝑛(𝜃𝑖)Δθil(θ)=1m∑i=1m(y(i)−hθ(x(i)))x(i)+λmsgn(θi)

 

 

 

梯度下降法的迭代函数变为,

梯度下降法的迭代函数变为,

 

 

$$\theta:=\theta-K'(\theta)-\frac{\lambda}{m}sgn(\theta)$$

 

𝜃:=𝜃−𝐾′(𝜃)−𝜆𝑚𝑠𝑔𝑛(𝜃)θ:=θ−K′(θ)−λmsgn(θ)

 

 

 

$K(\theta)$为原来的损失函数,由于最后一项的符号由$\theta$决定,可以看到,当$\theta$大于零时,更新后的$\theta$变小;当$\theta$小于零时,更新后的$\theta$变大。因此,L1正则化调整后的结果会更加稀疏(结果向量中有更多的0值)。(见图示,相当于在等高线上找令菱形最小的点。)

𝐾(𝜃)K(θ) 为原来的损失函数,由于最后一项的符号由𝜃θ 决定,可以看到,当𝜃θ 大于零时,更新后的𝜃θ 变小;当𝜃θ 小于零时,更新后的𝜃θ 变大。因此,L1正则化调整后的结果会更加稀疏(结果向量中有更多的0值)。(见图示,相当于在等高线上找令菱形最小的点。)

 

 

![image.png](attachment:image.png)

 

 

#### L2正则

L2正则

 

 

$$
J(\theta) =\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)})) + \frac{\lambda}{2m}\sum^m_{i=1}\theta_i^2
$$

 

𝐽(𝜃)=1𝑚∑𝑖=1𝑚𝑦(𝑖)ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))(1−ℎ𝜃(𝑥(𝑖)))+𝜆2𝑚∑𝑖=1𝑚𝜃2𝑖J(θ)=1m∑i=1my(i)hθ(x(i))+(1−y(i))(1−hθ(x(i)))+λ2m∑i=1mθi2

 

 

 

$$
\Delta_{\theta_i} l(\theta) = \frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)} + \frac{\lambda}{m}\theta_i
$$

 

Δ𝜃𝑖𝑙(𝜃)=1𝑚∑𝑖=1𝑚(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+𝜆𝑚𝜃𝑖Δθil(θ)=1m∑i=1m(y(i)−hθ(x(i)))x(i)+λmθi

 

 

 

梯度下降法的迭代函数变为,

梯度下降法的迭代函数变为,

 

 

$$\theta:=\theta-K'(\theta)-\frac{2\lambda}{m}\theta$$

 

𝜃:=𝜃−𝐾′(𝜃)−2𝜆𝑚𝜃θ:=θ−K′(θ)−2λmθ

 

 

 

$K(\theta)$为原来的损失函数,最有一项的$\lambda$决定了对参数的惩罚力度,惩罚力度越大,最后的结果向量的参数普遍较小且分散,避免了个别参数对整个函数起较大的影响。(见图示,相当于在等高线上找令圆形最小的点)

𝐾(𝜃)K(θ) 为原来的损失函数,最有一项的𝜆λ 决定了对参数的惩罚力度,惩罚力度越大,最后的结果向量的参数普遍较小且分散,避免了个别参数对整个函数起较大的影响。(见图示,相当于在等高线上找令圆形最小的点)

 

 

![image.png](attachment:image.png)

 

 

#### 逻辑回归的评价指标

逻辑回归的评价指标

 

 

由于逻辑回归模型属于分类模型,不能用线性回归的评价指标。
二元分类的评价指标基本都适用于逻辑回归。
观察以下混淆矩阵,

由于逻辑回归模型属于分类模型,不能用线性回归的评价指标。 二元分类的评价指标基本都适用于逻辑回归。 观察以下混淆矩阵,

 

 

![image.png](attachment:image.png)

 

 

我们可以用查准率和查全率来评价预测结果:
* 查准率 $P =\frac{TP}{TP+FP}$ 
* 查全率 $R =\frac{TP}{TP+FN}$

我们可以用查准率和查全率来评价预测结果:

  • 查准率 𝑃=𝑇𝑃𝑇𝑃+𝐹𝑃P=TPTP+FP
  • 查全率 𝑅=𝑇𝑃𝑇𝑃+𝐹𝑁R=TPTP+FN

 

 

我们可以用P-R曲线表示查准率和查全率之间的关系:

我们可以用P-R曲线表示查准率和查全率之间的关系:

 

 

查准率和查全率经常相互矛盾,一般查准率高时查全率低,查全率高时查准率低。我们经常针对具体的应用场景决定更看重哪一个指标。

查准率和查全率经

逻辑回归

 

 

1、逻辑回归与线性回归的联系与区别   
  
2、逻辑回归的原理  
  
3、逻辑回归损失函数推导及优化  
  
4、正则化与模型评估指标  
  
5、逻辑回归的优缺点  
  
6、样本不均衡问题解决办法 
  
7、sklearn参数  
  
8、代码实现

1、逻辑回归与线性回归的联系与区别

2、逻辑回归的原理

3、逻辑回归损失函数推导及优化

4、正则化与模型评估指标

5、逻辑回归的优缺点

6、样本不均衡问题解决办法

7、sklearn参数

8、代码实现

 

 

## 1、逻辑回归与线性回归的联系与区别 

1、逻辑回归与线性回归的联系与区别

 

 

线性回归解决的是连续变量问题,那么在分类任务中可以用线性回归吗?例如判断是良性肿瘤还是恶性肿瘤,判断是垃圾邮件还是正常邮件,等等……

线性回归解决的是连续变量问题,那么在分类任务中可以用线性回归吗?例如判断是良性肿瘤还是恶性肿瘤,判断是垃圾邮件还是正常邮件,等等……

 

 

答案是也可以,但是效果不好,见下图:

答案是也可以,但是效果不好,见下图:

 

 

<img src = "https://i-blog.csdnimg.cn/blog_migrate/e4350051994f785fe1fbf010b73b5cfb.png">

 

 

图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。

图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。

 

 

$$\hat y = \begin{cases}
1,& f(x)>0.5\\
0,& f(x)<0.5
\end{cases}$$

 

𝑦̂={1,0,𝑓(𝑥)>0.5𝑓(𝑥)<0.5y^={1,f(x)>0.50,f(x)<0.5

 

 
 
 
 
 
 
 
 
 
 
 
可以看到,在途中,年龄的区分点约为19岁。
 
 

可以看到,在途中,年龄的区分点约为19岁。

 
 
 
 
 
 
 
 
 
 
 
但当数据点不平衡时,很容易影响到阈值,见以下图:
 
 

但当数据点不平衡时,很容易影响到阈值,见以下图:

 
 
 
 
 
 
 
 
 
 
 
<img src = "https://i-blog.csdnimg.cn/blog_migrate/dfce9f2649af62ce64e3edcfc8c620a9.png">img src = "https://i-blog.csdnimg.cn/blog_migrate/dfce9f2649af62ce64e3edcfc8c620a9.png">
 
 

 
 
 
 
 
 
 
 
 
 
 
可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。
 
 

可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。

 
 
 
 
 
 
 
 
 
 
 
可是这符合实际情况吗?实际情况是60岁的老人和80岁的老人都不会购买玩具,增加几位80岁的老人,并不会影响20岁以下人群购买玩具的概率。但因为拟合曲线原本的值域为$(-\infty \  \infty)$而转换后的值域为[0,1],阈值对变量偏移很敏感。$(-\infty \  \infty)$而转换后的值域为[0,1],阈值对变量偏移很敏感。
 
 

可是这符合实际情况吗?实际情况是60岁的老人和80岁的老人都不会购买玩具,增加几位80岁的老人,并不会影响20岁以下人群购买玩具的概率。但因为拟合曲线原本的值域为(−∞ ∞)(−∞ ∞) 而转换后的值域为[0,1],阈值对变量偏移很敏感。

 

 

## 2、逻辑回归的原理 

2、逻辑回归的原理

 

 

因此理想的替代函数应当预测分类为0或1的概率,当为1的概率大于0.5时,判断为1,当为1的概率小于0.5时,判断为0。因概率的值域为$[0,1]$,这样的设定比线性回归合理很多。

因此理想的替代函数应当预测分类为0或1的概率,当为1的概率大于0.5时,判断为1,当为1的概率小于0.5时,判断为0。因概率的值域为[0,1][0,1] ,这样的设定比线性回归合理很多。

 

 

常用的替代函数为Sigmoid函数,即:

常用的替代函数为Sigmoid函数,即:

 

 

$$
h(z) = \frac{1}{1+e^{-z}}
$$

 

ℎ(𝑧)=11+𝑒−𝑧h(z)=11+e−z

 

 

 

其中,$z = \theta^T x$

其中,𝑧=𝜃𝑇𝑥z=θTx

 

 

我们可以看到,当z大于0时,函数大于0.5;当函数等于0时,函数等于0.5;函数小于0时,函数小于0.5。如果用函数表示目标分到某一类的概率,我们可以采用以下“单位阶跃函数”来判断数据的类别:

我们可以看到,当z大于0时,函数大于0.5;当函数等于0时,函数等于0.5;函数小于0时,函数小于0.5。如果用函数表示目标分到某一类的概率,我们可以采用以下“单位阶跃函数”来判断数据的类别:

 

 

$$h(z) = \left\{
\begin{aligned}
0,& & z<0 \\
0.5, & & z=0 \\
1, & & z>0
\end{aligned}
\right.$$

 

ℎ(𝑧)=0,0.5,1,𝑧<0𝑧=0𝑧>0h(z)={0,z<00.5,z=01,z>0

 

 

 

若Z大于0,则判断为正例;若小于0,判断为反例;若等于0,可任意判别。由于Sigmoid函数单调且可导,函数在(0,1)之间程Z字型,可以很好的模拟二分类情况,因此很适合我们要解决的问题。  
  
接下来我们来推导逻辑回归函数的优化

若Z大于0,则判断为正例;若小于0,判断为反例;若等于0,可任意判别。由于Sigmoid函数单调且可导,函数在(0,1)之间程Z字型,可以很好的模拟二分类情况,因此很适合我们要解决的问题。

接下来我们来推导逻辑回归函数的优化

 

 

## 3、逻辑回归损失函数推导及优化

3、逻辑回归损失函数推导及优化

 

 

$$
P(y=1|x;\theta) = h_\theta (x) \\
P(y=0|x;\theta) = 1-h_\theta (x)
$$

 

𝑃(𝑦=1|𝑥;𝜃)=ℎ𝜃(𝑥)𝑃(𝑦=0|𝑥;𝜃)=1−ℎ𝜃(𝑥)P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)

 

 

 

可以写作一般公式,

可以写作一般公式,

 

 

$$P(y|x;\theta)= h(x)^y (1-h(x))^{(1-y)}$$

 

𝑃(𝑦|𝑥;𝜃)=ℎ(𝑥)𝑦(1−ℎ(𝑥))(1−𝑦)P(y|x;θ)=h(x)y(1−h(x))(1−y)

 

 

 

极大似然函数为,

极大似然函数为,

 

 

$$
L(\theta) = \prod^{m}_{i=1}h_\theta (x^{(i)})^{y^{(i)}} (1-h_\theta (x^{(i)})^{(1-y^{(i)})}
$$

 

𝐿(𝜃)=∏𝑖=1𝑚ℎ𝜃(𝑥(𝑖))𝑦(𝑖)(1−ℎ𝜃(𝑥(𝑖))(1−𝑦(𝑖))L(θ)=∏i=1mhθ(x(i))y(i)(1−hθ(x(i))(1−y(i))

 

 

 

对数极大似然函数为,

对数极大似然函数为,

 

 

$$l(\theta) = log L(\theta) = \sum^{m}_{i=1} y^{(i)}log h_\theta (x^{(i)}) + (1-y^{(i)})log (1-h_\theta (x^{(i)}))
$$

 

𝑙(𝜃)=𝑙𝑜𝑔𝐿(𝜃)=∑𝑖=1𝑚𝑦(𝑖)𝑙𝑜𝑔ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))𝑙𝑜𝑔(1−ℎ𝜃(𝑥(𝑖)))l(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))

 

 

 

损失函数为,

损失函数为,

 

 

$$
J(\theta) = -\frac{1}{m}l(\theta) = -\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)}))
$$

 

𝐽(𝜃)=−1𝑚𝑙(𝜃)=−1𝑚∑𝑖=1𝑚𝑦(𝑖)ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))(1−ℎ𝜃(𝑥(𝑖)))J(θ)=−1ml(θ)=−1m∑i=1my(i)hθ(x(i))+(1−y(i))(1−hθ(x(i)))

 

 

 

损失函数表示了预测值和真实值之间的差异程度,预测值和真实值越接近,则损失函数越小。

损失函数表示了预测值和真实值之间的差异程度,预测值和真实值越接近,则损失函数越小。

 

 

#### 思考题:为什么不直接用和线性回归一样的平方损失函数?

思考题:为什么不直接用和线性回归一样的平方损失函数?

 

 

*回答:如果和线性回归一样的平方损失函数,则损失函数的形式为$\sum^m_{i=1}(y^{(i)}-\frac{1}{1+e^{-\theta^T x}})^2$,此为非凸函数,求解复杂,而且很容易求得局部最优解为非全局最优解。*

回答:如果和线性回归一样的平方损失函数,则损失函数的形式为∑𝑚𝑖=1(𝑦(𝑖)−11+𝑒−𝜃𝑇𝑥)2∑i=1m(y(i)−11+e−θTx)2 ,此为非凸函数,求解复杂,而且很容易求得局部最优解为非全局最优解。

 

 

 

 

 

我们用梯度下降法求解,

我们用梯度下降法求解,

 

 

$$\theta:=\theta-\alpha\Delta_\theta J(\theta) = \theta + \frac{\alpha}{m}\Delta_\theta l(\theta)$$

 

𝜃:=𝜃−𝛼Δ𝜃𝐽(𝜃)=𝜃+𝛼𝑚Δ𝜃𝑙(𝜃)θ:=θ−αΔθJ(θ)=θ+αmΔθl(θ)

 

 

 

由于$g'_\theta(z) = g_\theta (z)(1-g_\theta(z))$

由于𝑔′𝜃(𝑧)=𝑔𝜃(𝑧)(1−𝑔𝜃(𝑧))gθ′(z)=gθ(z)(1−gθ(z))

 

 

<td bgcolor=#87CEEB>小练习:试证明,当$g(z) = \frac{1}{1+e^{-z}}$</td>
<td bgcolor=#87CEEB>$g'(z) = g(z)(1-g(z))$</td>
小练习:试证明,当𝑔(𝑧)=11+𝑒−𝑧g(z)=11+e−z𝑔′(𝑧)=𝑔(𝑧)(1−𝑔(𝑧))g′(z)=g(z)(1−g(z))

 

 

证明:

证明:

 

 

\begin{align*}
g'(z) 
&= \frac{-1}{(1+e^{-z})^2}(-e^{-z}) \\
&= \frac{e^{-z}}{(1+e^{-z})^2} \\
&= \frac{1}{1+e^{-z}} \cdot \frac{e^{-z}}{1+e^{-z}} \\
&= g(z)(1-g(z))
\end{align*}

 

𝑔′(𝑧)=−1(1+𝑒−𝑧)2(−𝑒−𝑧)=𝑒−𝑧(1+𝑒−𝑧)2=11+𝑒−𝑧⋅𝑒−𝑧1+𝑒−𝑧=𝑔(𝑧)(1−𝑔(𝑧))g′(z)=−1(1+e−z)2(−e−z)=e−z(1+e−z)2=11+e−z⋅e−z1+e−z=g(z)(1−g(z))

 

 

 

因此可以求得,

因此可以求得,

 

 

\begin{align*}
\frac{\partial J(\theta)}{\partial \theta_i}
&= \frac{1}{m}\sum^m_{i=1} y^{(i)}\frac{1}{h_\theta (x^{(i)})} h_\theta (x^{(i)})(1-h_\theta (x^{(i)}))x^{(i)} + (1-y^{(i)})\frac{1}{1-h_\theta (x^{(i)})}h_\theta (x^{(i)})(h_\theta (x^{(i)})-1)\\
&= \frac{1}{m}\sum^m_{i=1}y^{(i)}(1-h_\theta (x^{(i)}))x^{(i)}+(y^{(i)}-1)h_\theta (x^{(i)})x^{(i)} \\
& = \frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)}
\end{align*}

 

∂𝐽(𝜃)∂𝜃𝑖=1𝑚∑𝑖=1𝑚𝑦(𝑖)1ℎ𝜃(𝑥(𝑖))ℎ𝜃(𝑥(𝑖))(1−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+(1−𝑦(𝑖))11−ℎ𝜃(𝑥(𝑖))ℎ𝜃(𝑥(𝑖))(ℎ𝜃(𝑥(𝑖))−1)=1𝑚∑𝑖=1𝑚𝑦(𝑖)(1−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+(𝑦(𝑖)−1)ℎ𝜃(𝑥(𝑖))𝑥(𝑖)=1𝑚∑𝑖=1𝑚(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)∂J(θ)∂θi=1m∑i=1my(i)1hθ(x(i))hθ(x(i))(1−hθ(x(i)))x(i)+(1−y(i))11−hθ(x(i))hθ(x(i))(hθ(x(i))−1)=1m∑i=1my(i)(1−hθ(x(i)))x(i)+(y(i)−1)hθ(x(i))x(i)=1m∑i=1m(y(i)−hθ(x(i)))x(i)

 

 

 

可以看到,形式和线性回归很相似,这是因为他们都属于广义线性模型(GLM,可参考吴恩达-CS229 第四课)。

可以看到,形式和线性回归很相似,这是因为他们都属于广义线性模型(GLM,可参考吴恩达-CS229 第四课)。

 

 

### 逻辑回归的分布式实现

逻辑回归的分布式实现

 

 

由于单机处理能力的限制,在对大规模样本训练时,往往需要将求解过程并行化。我们知道在求解过程中,行和列都存在批向量处理的情况,我们可以按行并行和按列并行。

由于单机处理能力的限制,在对大规模样本训练时,往往需要将求解过程并行化。我们知道在求解过程中,行和列都存在批向量处理的情况,我们可以按行并行和按列并行。

 

 

#### 按行并行

按行并行

 

 

看$\frac{\partial J(\theta)}{\partial \theta_i} =\frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)}$,相当于将上个迭代步骤结果,将每个样本进行运算后求和,那么只需将样本拆分到不同机器上运算,最后在求和即可。

看∂𝐽(𝜃)∂𝜃𝑖=1𝑚∑𝑚𝑖=1(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)∂J(θ)∂θi=1m∑i=1m(y(i)−hθ(x(i)))x(i) ,相当于将上个迭代步骤结果,将每个样本进行运算后求和,那么只需将样本拆分到不同机器上运算,最后在求和即可。

 

 

#### 按列并行

按列并行

 

 

$\frac{\partial J(\theta)}{\partial \theta_i} =\frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)}$是对参数$\theta_i$进行的运算,那么只需将特征分配到不同的机器上,分别计算梯度后,再归并到完整的特征向量进行梯度更新即可。

∂𝐽(𝜃)∂𝜃𝑖=1𝑚∑𝑚𝑖=1(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)∂J(θ)∂θi=1m∑i=1m(y(i)−hθ(x(i)))x(i) 是对参数𝜃𝑖θi 进行的运算,那么只需将特征分配到不同的机器上,分别计算梯度后,再归并到完整的特征向量进行梯度更新即可。

 

 

## 4、正则化与模型评估指标

4、正则化与模型评估指标

 

 

### 正则化

正则化

 

 

我们可以在损失函数后面,加上正则化函数,即$\theta$的惩罚项,来抑制过拟合问题。

我们可以在损失函数后面,加上正则化函数,即𝜃θ 的惩罚项,来抑制过拟合问题。

 

 

#### L1正则:

L1正则:

 

 

$$
J(\theta) =\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)})) + \frac{\lambda}{m
}\sum^m_{i=1}|\theta_i|
$$

 

𝐽(𝜃)=1𝑚∑𝑖=1𝑚𝑦(𝑖)ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))(1−ℎ𝜃(𝑥(𝑖)))+𝜆𝑚∑𝑖=1𝑚|𝜃𝑖|J(θ)=1m∑i=1my(i)hθ(x(i))+(1−y(i))(1−hθ(x(i)))+λm∑i=1m|θi|

 

 

 

$$
\Delta_{\theta_i} l(\theta) = \frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)} + \frac{\lambda}{m}sgn(\theta_i)
$$

 

Δ𝜃𝑖𝑙(𝜃)=1𝑚∑𝑖=1𝑚(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+𝜆𝑚𝑠𝑔𝑛(𝜃𝑖)Δθil(θ)=1m∑i=1m(y(i)−hθ(x(i)))x(i)+λmsgn(θi)

 

 

 

梯度下降法的迭代函数变为,

梯度下降法的迭代函数变为,

 

 

$$\theta:=\theta-K'(\theta)-\frac{\lambda}{m}sgn(\theta)$$

 

𝜃:=𝜃−𝐾′(𝜃)−𝜆𝑚𝑠𝑔𝑛(𝜃)θ:=θ−K′(θ)−λmsgn(θ)

 

 

 

$K(\theta)$为原来的损失函数,由于最后一项的符号由$\theta$决定,可以看到,当$\theta$大于零时,更新后的$\theta$变小;当$\theta$小于零时,更新后的$\theta$变大。因此,L1正则化调整后的结果会更加稀疏(结果向量中有更多的0值)。(见图示,相当于在等高线上找令菱形最小的点。)

𝐾(𝜃)K(θ) 为原来的损失函数,由于最后一项的符号由𝜃θ 决定,可以看到,当𝜃θ 大于零时,更新后的𝜃θ 变小;当𝜃θ 小于零时,更新后的𝜃θ 变大。因此,L1正则化调整后的结果会更加稀疏(结果向量中有更多的0值)。(见图示,相当于在等高线上找令菱形最小的点。)

 

 

![image.png](attachment:image.png)

 

 

#### L2正则

L2正则

 

 

$$
J(\theta) =\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)})) + \frac{\lambda}{2m}\sum^m_{i=1}\theta_i^2
$$

 

𝐽(𝜃)=1𝑚∑𝑖=1𝑚𝑦(𝑖)ℎ𝜃(𝑥(𝑖))+(1−𝑦(𝑖))(1−ℎ𝜃(𝑥(𝑖)))+𝜆2𝑚∑𝑖=1𝑚𝜃2𝑖J(θ)=1m∑i=1my(i)hθ(x(i))+(1−y(i))(1−hθ(x(i)))+λ2m∑i=1mθi2

 

 

 

$$
\Delta_{\theta_i} l(\theta) = \frac{1}{m}\sum^m_{i=1}(y^{(i)} - h_\theta (x^{(i)}))x^{(i)} + \frac{\lambda}{m}\theta_i
$$

 

Δ𝜃𝑖𝑙(𝜃)=1𝑚∑𝑖=1𝑚(𝑦(𝑖)−ℎ𝜃(𝑥(𝑖)))𝑥(𝑖)+𝜆𝑚𝜃𝑖Δθil(θ)=1m∑i=1m(y(i)−hθ(x(i)))x(i)+λmθi

 

 

 

梯度下降法的迭代函数变为,

梯度下降法的迭代函数变为,

 

 

$$\theta:=\theta-K'(\theta)-\frac{2\lambda}{m}\theta$$

 

𝜃:=𝜃−𝐾′(𝜃)−2𝜆𝑚𝜃θ:=θ−K′(θ)−2λmθ

 

 

 

$K(\theta)$为原来的损失函数,最有一项的$\lambda$决定了对参数的惩罚力度,惩罚力度越大,最后的结果向量的参数普遍较小且分散,避免了个别参数对整个函数起较大的影响。(见图示,相当于在等高线上找令圆形最小的点)

𝐾(𝜃)K(θ) 为原来的损失函数,最有一项的𝜆λ 决定了对参数的惩罚力度,惩罚力度越大,最后的结果向量的参数普遍较小且分散,避免了个别参数对整个函数起较大的影响。(见图示,相当于在等高线上找令圆形最小的点)

 

 

![image.png](attachment:image.png)

 

 

#### 逻辑回归的评价指标

逻辑回归的评价指标

 

 

由于逻辑回归模型属于分类模型,不能用线性回归的评价指标。
二元分类的评价指标基本都适用于逻辑回归。
观察以下混淆矩阵,

由于逻辑回归模型属于分类模型,不能用线性回归的评价指标。 二元分类的评价指标基本都适用于逻辑回归。 观察以下混淆矩阵,

 

 

![image.png](attachment:image.png)

 

 

我们可以用查准率和查全率来评价预测结果:
* 查准率 $P =\frac{TP}{TP+FP}$ 
* 查全率 $R =\frac{TP}{TP+FN}$

我们可以用查准率和查全率来评价预测结果:

  • 查准率 𝑃=𝑇𝑃𝑇𝑃+𝐹𝑃P=TPTP+FP
  • 查全率 𝑅=𝑇𝑃𝑇𝑃+𝐹𝑁R=TPTP+FN

 

 

我们可以用P-R曲线表示查准率和查全率之间的关系:

我们可以用P-R曲线表示查准率和查全率之间的关系:

 

 

查准率和查全率经常相互矛盾,一般查准率高时查全率低,查全率高时查准率低。我们经常针对具体的应用场景决定更看重哪一个指标。

查准率和查全率经常相互矛盾,一般查准率高时查全率低,查全率高时查准率低。我们经常针对具体的应用场景决定更看重哪一个指标。

 

 

<td bgcolor=#87CEEB>小练习:试举例说明,在什么场景下,更看重查准率;在什么情况下,更看重查全率,并说明原因。</td>
小练习:试举例说明,在什么场景下,更看重查准率;在什么情况下,更看重查全率,并说明原因。

 

 

<img src = "https://ask.qcloudimg.com/http-save/developer-news/4b1eek0aoz.jpeg?imageView2/2/w/1620"></img>

 

常相互矛盾,一般查准率高时查全率低,查全率高时查准率低。我们经常针对具体的应用场景决定更看重哪一个指标。

 

 

<td bgcolor=#87CEEB>小练习:试举例说明,在什么场景下,更看重查准率;在什么情况下,更看重查全率,并说明原因。</td>
小练习:试举例说明,在什么场景下,更看重查准率;在什么情况下,更看重查全率,并说明原因。

 

 

<img src = "https://ask.qcloudimg.com/http-save/developer-news/4b1eek0aoz.jpeg?imageView2/2/w/1620"></img>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值