前言

简单来说, 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。 注意,这里用的是“可能性”,而非数学上的“概率”,logisitc回归的结果并非数学定义中的概率值,不可以直接当做概率值来用。该结果往往用于和其他特征值加权求和,而非直接相乘。

虽然Logistic Regression名字叫回归,但实际它解决的是一个分类问题。通过softmax函数将任意实数映射到[0,1], 我们可以使用阈值的方式确定分类类别。

Sigmoid 函数

  • 表达式:
    δ(x)=11+e−x\delta(x)=\frac{1}{1+e^{-x}} δ(x)=1+e−x1​

  • 图像:

从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。它的这个特性对于解决二分类问题十分重要

Logistic Regression

逻辑回归的假设函数形式如下:

hw(x)=δ(wTx)h_{w}(x)=\delta\left(w^{T} x\right) hw​(x)=δ(wTx)
δ(x)=11+e−x\delta(x)=\frac{1}{1+e^{-x}} δ(x)=1+e−x1​

所以:

hw(x)=11+e−wTxh_{w}(x)=\frac{1}{1+e^{-w^{T} x}} hw​(x)=1+e−wTx1​

其中 xxx 是我们的输入, www 为我们要求取的参数。

逻辑回归模型所做的假设是:

P(y=1∣x;w)=δ(wTx)=11+e−wTxP(y=1 \mid x ; w)=\delta\left(w^{T} x\right)=\frac{1}{1+e^{-w^{T} x}} P(y=1∣x;w)=δ(wTx)=1+e−wTx1​

这个函数的意思就是在给定 xxx 和 www 的条件下 y=1y=1y=1 的概率。

这里 δ(wTx)\delta(w^Tx)δ(wTx) 就是我们上面提到的sigmoid函数,与之相对应的决策函数为:

y∗=1,if P(y=1∣x)>0.5y^{*}=1, \text { if } P(y=1 \mid x)>0.5 y∗=1, if P(y=1∣x)>0.5

选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。

损失函数

在Logistic Regression 问题中,常见的损失函数是交叉熵损失。

  • 若我们令y={0,1}y = \{0, 1\}y={0,1}, 则二分类的交叉熵的损失函数形式如下:
    loss=−1m[∑i=1nyilogpi+(1−yi)log(1−pi)]loss = -\frac{1}{m}\left[\sum_{i=1}^{n} y_{i}logp_{i} + (1-y_{i})log(1-p_{i})\right] loss=−m1​[i=1∑n​yi​logpi​+(1−yi​)log(1−pi​)]
    其中pi=δ(wTx)p_i=\delta(w^Tx)pi​=δ(wTx). 这是我们较常用的损失函数形式,因此这里不再赘述。

  • 此外,若设置y={−1,1}y = \{-1, 1\}y={−1,1}, 则二分类交叉熵损失函数形式如下:
    loss=∑i=1mlog(1+exp(−yi(wTx+c)))loss = \sum_{i=1}^{m}log(1 + exp(-y_{i}(w^Tx+c))) loss=i=1∑m​log(1+exp(−yi​(wTx+c)))

    证明:

    我们令yi∈{0,1}y_i \in \{0, 1\}yi​∈{0,1}, y~i∈{−1,1}\tilde y_i \in \{-1, 1\}y~​i​∈{−1,1}, 这样有y~i=2yi−1\tilde y_i = 2y_i -1y~​i​=2yi​−1.

    令pi=σ(XiTω)p_i = \sigma({X^T_i \omega})pi​=σ(XiT​ω), 有1−σ(x)=σ(−x)1- \sigma(x) = \sigma(-x)1−σ(x)=σ(−x).

    因此有:
    −∑i[yilog⁡(pi)+(1−yi)log⁡(1−pi)]=∑ilog⁡(1+exp⁡(−y~i(XiTω+c))).-\sum_i [y_i \log(p_i) + (1-y_i) \log(1 - p_i)] = \sum_i \log\left(1 + \exp(-\tilde y_i({X^T_i \omega + c}))\right).−i∑​[yi​log(pi​)+(1−yi​)log(1−pi​)]=i∑​log(1+exp(−y~​i​(XiT​ω+c))).
    其中:
    1−δ(x)=1−11+e−x=1+e−x−11+e−x=1ex1+1ex=11+ex=δ(−x)\begin{aligned} 1-\delta(x) &= 1 - \frac{1}{1+e^{-x}} \\ &= \frac{1+e^{-x}-1}{1+e^{-x}} \\ &= \frac{\frac{1}{e^{x}}}{1 + \frac{1}{e^{x}}} \\ &= \frac{1}{1+e^x} \\ &= \delta(-x) \end{aligned} 1−δ(x)​=1−1+e−x1​=1+e−x1+e−x−1​=1+ex1​ex1​​=1+ex1​=δ(−x)​

sklearn中提供了两种带正则项的交叉熵损失函数,如下 (此时CE Loss使用的是y={−1,1}y=\{-1, 1\}y={−1,1})的情况:

  • L2-regularized Logistic Regression
    loss=min⁡w,c12wTw+C∑i=1nlog⁡(exp⁡(−yi(XiTw+c))+1)loss = \min _{w, c} \frac{1}{2} w^{T} w+C \sum_{i=1}^{n} \log \left(\exp \left(-y_{i}\left(X_{i}^{T} w+c\right)\right)+1\right) loss=w,cmin​21​wTw+Ci=1∑n​log(exp(−yi​(XiT​w+c))+1)

  • L1 regularized logistic regression
    loss=min⁡w,c∥w∥1+C∑i=1nlog⁡(exp⁡(−yi(XiTw+c))+1)loss = \min _{w, c}\|w\|_{1}+C \sum_{i=1}^{n} \log \left(\exp \left(-y_{i}\left(X_{i}^{T} w+c\right)\right)+1\right) loss=w,cmin​∥w∥1​+Ci=1∑n​log(exp(−yi​(XiT​w+c))+1)

sklearn 实例分析

1. L1 Penalty and Sparsity in Logistic Regression

代码链接

这个例子展示了L1和L2约束条件在逻辑回归中的作用。下图中的8×88\times 88×8网格展示了LR中64个权重的大小。可以看到,L1正则项会使权重更加稀疏。

思考

  1. 如何评估逻辑回归与简单线性回归模型预测的性能?
  2. 如何确定逻辑回归与简单线性回归模型?
  3. L1和L2正则项的区别

参考文献

  1. 逻辑回归(Logistic Regression)(一)
  2. 逻辑回归(Logistic Regression)(二)
  3. sklearn: logistic-regression
  4. Loss Function of scikit-learn LogisticRegression
  5. 机器学习 | 算法笔记- 逻辑斯蒂回归(Logistic Regression)
  6. 简单的交叉熵损失函数,你真的懂了吗?

机器学习基础:逻辑回归(Machine Learning Fundamentals: Logistic Regression)相关推荐

  1. logit回归模型假设_机器学习基础---逻辑回归(假设函数与线性回归不同)

    一:分类 (一)分类基础 在分类问题中,你要预测的变量y是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法. 在分类问题 ...

  2. 机器学习基础-逻辑回归-09

    逻辑回归 正确率/召回率/F1指标 梯度下降法-逻辑回归 import matplotlib.pyplot as plt import numpy as np from sklearn.metrics ...

  3. 逻辑回归模型详解(Logistic Regression)

    目录 广义线性模型 极大似然法 逻辑回归的假设函数 逻辑回归的损失函数 交叉熵损失函数 为什么LR模型损失函数使用交叉熵不用均方差 交叉熵损失函数的数学原理 交叉熵损失函数的直观理解 交叉熵简介 对数 ...

  4. 谷歌机器学习规则 (Rules of Machine Learning)

    机器学习规则 (Rules of Machine Learning) 往期文章: 机器学习之特征工程 机器学习之分类(Classification) 精确率.准确率.召回率 ------------- ...

  5. 机器学习:逻辑回归(logistics regression)

    title: 机器学习:逻辑回归(logistics regression) date: 2019-11-30 20:55:06 mathjax: true categories: 机器学习 tags ...

  6. 机器学习_2逻辑回归

    机器学习_逻辑回归 分类问题 二分类--Sigmoid函数 Sigmoid函数代码实现 逻辑回归 数学原理 求解方式 正则化 逻辑回归数据集应用样例--代码实现 样例1:有清晰的线性决策边界 决策边界 ...

  7. 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)

    [机器学习笔记]可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning) 目录 [机器学习笔记]可解释机器学习-学习笔记 Interpre ...

  8. 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例

    传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 文章目录 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 1导入基本库 2读取数据并且变换类型 3输出数据 4可视化数据 ...

  9. 吴恩达深度学习笔记——结构化机器学习项目(Structuring Machine Learning Projects)

    深度学习笔记导航 前言 传送门 结构化机器学习项目(Machine Learning Strategy) 机器学习策略概述 正交化(orthogonalization) 评价指标 数字评估指标的单一性 ...

  10. 【机器学习】逻辑回归原理介绍

    [机器学习]逻辑回归原理介绍 [机器学习]逻辑回归python实现 [机器学习]逻辑回归sklearn实现 Logistic 回归模型是目前广泛使用的学习算法之一,通常用来解决二分类问题,虽然名字中有 ...

最新文章

  1. iOS 10 个实用小技巧(总有你不知道的和你会用到的)
  2. 分享丨李飞飞、吴恩达、Bengio等人的顶级深度学习课程
  3. 下划线转驼峰,并且首字母大写
  4. pytorch安装问题:路径不对导致no moduled name 'torch'
  5. java中treemap_Java中TreeMap集合讲解
  6. ambari 自定义组件安装
  7. XP Embedded:不同的用户使用不同的外壳程序
  8. idea中使用git直接提交本地写好的代码
  9. 拦截器ConnectInterceptor
  10. 连续,可积,存在原函数,变上限积分
  11. Java之美[从菜鸟到高手演变]之Java学习方法
  12. UPC10728:Imputation
  13. 论文阅读笔记:Layer Normalization
  14. 购买完域名之后能干什么事儿?
  15. FFmpeg - Windows下使用MSYS2和VS编译FFmpeg
  16. 日语语法准备一:日语词性的分类
  17. 记:《洛克菲勒留给儿子的38封信》-- 37
  18. ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
  19. 阿里后台开发不知名部门总结
  20. 多暂估的库存如何调整_实例教你会计知识——存货暂估

热门文章

  1. TZOJ 4839 麦森数(模拟快速幂)
  2. 最近在职场的一些感悟
  3. 突破asp过滤系统入侵网站
  4. FHQ Treap摘要
  5. PIC单片机开发环境搭建
  6. GoDaddy Linux主机支持机房的更换
  7. 机器学习基石笔记2——在何时可以使用机器学习(2)
  8. UITableViewCell delete button 上有其它覆盖层
  9. 如何卸载密码保护的Symantec Endpoint Protection
  10. 7.3数据类型及内置方法(一)