逻辑回归详解——机器学习入门

Task2

【声明】:转摘注明出处,禁止商用。

【声明】:转摘注明出处,禁止商用。

【声明】:转摘注明出处,禁止商用。

文章目录

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

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

线性回归:
h θ ( x ) = ∑ i = 0 n θ i x i = θ T x h_{\theta}(x) =\sum_{i=0}^{n}\theta_{i}x_{i} = \theta^{T}x hθ(x)=i=0nθixi=θTx
逻辑回归:
P ( Y = 1 ∣ x ) = s i g m o d ( θ T x ) = e w x + b 1 + e w x + b P ( Y = 0 ∣ x ) = s i g m o d ( θ T x ) = 1 1 + e w x + b P(Y=1 | x)=sigmod(\theta^{T} x)= \frac{e^{wx+b}}{1+e^{wx+b}} \\ P(Y=0 | x)=sigmod(\theta^{T} x)= \frac{1}{1+e^{wx+b}} P(Y=1x)=sigmod(θTx)=1+ewx+bewx+bP(Y=0x)=sigmod(θTx)=1+ewx+b1
**联系:**逻辑回归与线性回归都属于广义的线性回归,逻辑回归的核心其实也就是线性回归,只不过逻辑回归是处理二分类问题,在线性回归的内壳下,使用sigmod函数把映射的整个值域压缩到 [0, 1]区间,将sigmod函数的中点作为二分类的交界点,在线性回归的来说,即在映射的值域范围找到一个临界点,大于临界点与小于临界点是两种不同的分类结果。

区别:

  1. (主要区别)逻辑回归与线性回归的损失函数不同,线性回归的损失函数有许多,而逻辑回归的损失函数不能用MSE等,因为会导致整个优化问题变为非凸问题,难以找到最优解。需要使用对数似然函数将其优化问题转化为容易解决的凸问题,才可以利用梯度下降算法以及拟牛顿法寻找最优解。
  2. 逻辑回归是二分类模型,线性回归是连续回归模型,模型任务不同。逻辑回归与其他分类算法类似存在超平面的划分,比如感知机、支持向量机等。

2. 逻辑回归的原理

逻辑回归的原理,算法最本质的核心在于sigmod函数,在线性回归的模型框架下外嵌一个sigmod函数,其本质的原理是对于线性回归的连续性数据进行离散化,局限于sigmod函数的本身,对于逻辑回归也存在一些修改的模型,比如加入 One-Vs-All机制 或者加入 softmax函数进行多类别归一化

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

逻辑回归公式:
P ( Y = 1 ∣ x ) = s i g m o d ( θ T x ) = e w x + b 1 + e w x + b P ( Y = 0 ∣ x ) = s i g m o d ( θ T x ) = 1 1 + e w x + b P(Y=1 | x)=sigmod(\theta^{T} x)= \frac{e^{wx+b}}{1+e^{wx+b}} \\ P(Y=0 | x)=sigmod(\theta^{T} x)= \frac{1}{1+e^{wx+b}} P(Y=1x)=sigmod(θTx)=1+ewx+bewx+bP(Y=0x)=sigmod(θTx)=1+ewx+b1
损失函数构造:

令:
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1 | x)=\pi(x), \quad P(Y=0 | x)=1-\pi(x) \\ P(Y=1x)=π(x),P(Y=0x)=1π(x)
综合上式,最大似然估计如下:
KaTeX parse error: Expected 'EOF', got '\ ' at position 63: …)\right)^{1-y} \̲ ̲
取似然函数
L ( w ) = ∑ i = 1 N [ y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ] \begin{aligned} L(w) &=\sum_{i=1}^{N}\left[y_{i} \log \pi\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-\pi\left(x_{i}\right)\right)\right] \end{aligned} \\ L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]
换一种形式:
L ⁡ ( π ( x ) , y ) = { − log ⁡ ( π ( x ) )  if  y = 1 − log ⁡ ( 1 − π ( x ) )  if  y = 0 \operatorname{L}\left(\pi(x), y\right)=\left\{\begin{aligned}-\log \left(\pi(x)\right) & \text { if } y=1 \\-\log \left(1-\pi(x)\right) & \text { if } y=0 \end{aligned}\right. L(π(x),y)={log(π(x))log(1π(x)) if y=1 if y=0
损失函数
J ( π ( x ) ) = − 1 m l ( π ( x ) ) J(\pi(x))=-\frac{1}{m} l(\pi(x)) J(π(x))=m1l(π(x))
然后基于梯度下降算法进行优化,推导整理之后再发。

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

**正则化:**模型选择的典型方法是正则化(regularization)。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如正则化项可以是模型参数向量的范数。【来源 李航《统计学习方法》】

正则化一般具有如下形式:
min ⁡ f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) \min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f) fFminN1i=1NL(yi,f(xi))+λJ(f)

第一项是经验风险,第二项是正则化项,而其中 J ( f ) J(f) J(f) 的常用表达是参数向量的L1 与 L2范数。如下:

L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ 2 ∥ w ∥ 2 L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ ∥ w ∥ t L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{i} ; w\right)-y_{i}\right)^{2}+\frac{\lambda}{2}\|w\|^{2} \\ L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{i} ; w\right)-y_{i}\right)^{2}+\lambda\|w\|_{t} L(w)=N1i=1N(f(xi;w)yi)2+2λw2L(w)=N1i=1N(f(xi;w)yi)2+λwt

模型评估指标:

对于通用模型来说存在很多的评估指标,对于有些特殊的模型存在响应的评估指标,例如聚类,存在轮廓系数等具有算法特性的评估指标,此处的内容太多,列如下内容,方便自主查询:

  • 准确率 - accuracy
  • 精确率 - precision
  • 召回率 - recall
  • 混淆矩阵
  • F1值 - F1-score
  • ROC曲线下面积 - ROC-AUC (area under curve)
  • PR曲线下面积 - PR-AUC
  • IOU (目标任务常用)

分析几个比较好的博客:【资料一】 【资料二】

5. 逻辑回归的优缺点

  • 优点:
    1. 简单
    2. 模型效果不错,在工程上是可接受的(作baseline),主要取决于特征工程的建立
    3. 训练速度快
    4. 资源占用小
    5. 如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。

但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。

如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。为什么我们还是会在训练的过程当中将高度相关的特征去掉?
去掉高度相关的特征会让模型的可解释性更好,可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。【来源 ModifyBlog 】

  • 缺点:
    1. 准确率并不是很高。
    2. 很难处理数据不平衡的问题。
    3. 处理非线性数据较麻烦。
    4. 逻辑回归本身无法筛选特征。有时候,我们会用gbdt来筛选特征,然后再上逻辑回归。

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

只要正负比例不过于极端,目前各种集成模型不采样处理加选择合适的评价参数都能达到不错的效果,过于偏离的正负比例,再怎么采样感觉也学习不到更多的信息。【来源 知乎 微调】

此处涉及的内容太多,评估标准和算法还有一些小技巧,分享以下博文:

  • 微调 专栏
  • 一只鸟的天空
  • moleaener
  • 刘芷宁:文章一 文章二

7. Sklearn参数

class sklearn.linear_model.``LogisticRegression(

penalty=’l2’, 字符串,’l1‘ 或者 ’l2‘,默认 ’l2‘。正则化项

dual=False, 在样本数多于特征数时不用考虑

tol=0.0001,

C=1.0,

fit_intercept=True,

intercept_scaling=1,

class_weight=None,

random_state=None,

solver=’warn’,

max_iter=100,

multi_class=’warn’,

verbose=0,

warm_start=False,

n_jobs=None,

l1_ratio=None)

参考:逻辑回归参数详解 来源 【CSDN 博主cherzhoucheer】

参考:【sklearn 官方文档】

你可能感兴趣的:(datawhale,组队学习,机器学习入门)