目录

  • 1、分类问题
  • 2、逻辑回归
  • 3、损失函数
  • 4、决策边界
  • 5、OvR与OvO

1、分类问题

机器学习中有三大问题,分别是回归、分类和聚类。线性回归属于回归任务,而逻辑回归和k近邻算法属于分类任务。逻辑回归算法主要应用于分类问题,比如垃圾邮件的分类(是垃圾邮件或不是垃圾邮件),或者肿瘤的判断(是恶性肿瘤或不是恶性肿瘤)。在二分类的问题中,我们经常用 1 表示正向的类别,用 0 表示负向的类别。

2、逻辑回归

logistic回归是广义线性回归,因此与线性回归有很多相同之处。它们的模型形式基本上相同,都具有y^=wx+b\hat y=wx+by^​=wx+b,其中w和b是待求参数。其区别在于他们的值域不同,线性回归的值域在[+∞,−∞][+\infty,-\infty][+∞,−∞],logistic回归值域在[0,1][0,1][0,1]。逻辑回归既可以看做是回归算法,也可以看做是分类算法,通常作为分类算法用,只可以解决二分类问题。回归问题怎么解决分类问题啦?作为分类任务时,我们将样本的特征和样本发生的概率联系起来,概率就是一个[0,1]之间的数。将p^≥0.5\hat p\geq0.5p^​≥0.5归为正例 1,将概率p^≤0.5\hat p\leq0.5p^​≤0.5归为负例 0。
p^=f(x)y^={1,p^≥0.50,p^≤0.5\hat p=f(x) \qquad\hat y=\left\{ \begin{aligned} 1, & & \hat p \geq0.5 \\ 0, & & \hat p \leq0.5 \end{aligned} \right.p^​=f(x)y^​={1,0,​​p^​≥0.5p^​≤0.5​
那么逻辑回归既然与线性回归有千丝万缕的联系,那它是怎么将线性回归的值域[+∞,−∞][+\infty,-\infty][+∞,−∞]约束到
[0,1][0,1][0,1]之间的一个概率值?线性回归问题中的假设函数y^=θTx\hat y=\theta^Txy^​=θTx,而想要其输出值满足0≤y^≤10\leq\hat y\leq10≤y^​≤1,引进sigmoid函数,如下所示:
sigmoid(x)=11+e−xx=θTxsigmoid(x)=\frac{1}{1+e^{-x}}\qquad x=\theta^Txsigmoid(x)=1+e−x1​x=θTx
sigmoid函数图像如下所示,由函数图像可知,sigmoid函数能够满足逻辑回归的基本要求,其值域为(0,1)(0,1)(0,1) 在x>0x>0x>0时,p^>0.5\hat p>0.5p^​>0.5,在x<0x<0x<0时,p^<0.5\hat p<0.5p^​<0.5。因此逻辑回归问题中的假设函数:
p^=sigmoid(θT⋅x)=11+e−θT⋅xy^={1,p^≥0.50,p^≤0.5\hat p=sigmoid(\theta^T\cdot x_)=\frac{1}{1+e^{-\theta^T\cdot x}} \qquad\hat y=\left\{ \begin{aligned} 1, & & \hat p \geq0.5 \\ 0, & & \hat p \leq0.5 \end{aligned} \right.p^​=sigmoid(θT⋅x)​=1+e−θT⋅x1​y^​={1,0,​​p^​≥0.5p^​≤0.5​

3、损失函数

  • 代价函数的表示

对于给定的样本数据集X,y,我们如何找到参数θ\thetaθ。与线性回归问题一样,寻找合适的θ\thetaθ参数对于假设函数与训练集的拟合是非常重要的,而寻找损失函数的最小值无疑是至关重要的。那么问题来了,我们应该如何表示损失函数。对于逻辑回归我们要求cost满足如下要求即可:
cost={如果y=1,p越小,cost越大如果y=0,p越大,cost越大cost=\left\{ \begin{aligned} &如果y=1,p越小,cost越大 \\ &如果y=0,p越大,cost越大 \end{aligned} \right.cost={​如果y=1,p越小,cost越大如果y=0,p越大,cost越大​
此时此刻有没有想到高中学过的 −log(x)-log(x)−log(x) 函数在(0,1)(0,1)(0,1)之间的取值图像,正好满足我们的要求,因此我们可以将cost表示如下:
cost={−log(p^)ify=1−log(1−p^)ify=0⟺cost=−ylog(p^)−(1−y)log(1−p^)cost=\left\{ \begin{aligned} && -log(\hat p) && if && y=1\\ && -log(1-\hat p) && if && y=0 \end{aligned} \right.\qquad \iff \qquad cost=-ylog(\hat p)-(1-y)log(1-\hat p)cost={​​−log(p^​)−log(1−p^​)​​ifif​​y=1y=0​⟺cost=−ylog(p^​)−(1−y)log(1−p^​)
根据y=1y=1y=1和y=0y=0y=0两种不同的情况,其代价函数的图像如下所示:

很容易发现,如果y=1时,对于−log(x)-log(x)−log(x),取0时损失趋于∞\infty∞,取1则没有任何损失。而如果y=0时,对于−log(1−x)-log(1-x)−log(1−x),取1时损失趋于∞\infty∞,取0则没有任何损失。此时我们便得到了逻辑回归的代价函数
J(θ)=−1m∑i=1my(i)log(simgoid(Xb(i)θ))+(1−y(i))log(1−sigmoid(Xb(i)θ))J(\theta)=-\frac{1}{m}\sum\limits_{i=1}\limits^my^{(i)}log(simgoid(X_b^{(i)}\theta))+(1-y^{(i)})log(1-sigmoid(X_b^{(i)}\theta))J(θ)=−m1​i=1∑m​y(i)log(simgoid(Xb(i)​θ))+(1−y(i))log(1−sigmoid(Xb(i)​θ))

  • 代价函数的最小化
    与线性回归一样,得到代价函数之后,需要对代价函数求取最小值,仍然使用梯度下降算法,求解结果如下所示:
    J(θ)θj=1m∑i=1m(simoid(Xb(i))−y(i))Xj(i)\frac{J(\theta)}{\theta_j}=\frac{1}{m}\sum\limits_{i=1}\limits^m(simoid(X_b^{(i)})-y^{(i)})X_j^{(i)}θj​J(θ)​=m1​i=1∑m​(simoid(Xb(i)​)−y(i))Xj(i)​
    ∇J(θ)=1m⋅[∑i=1m(y^(i)−y(i))⋅X0(i)∑i=1m(y^(i)−y(i))⋅X1(i)∑i=1m(y^(i)−y(i))⋅X1(i)⋯∑i=1m(y^(i)−y(i))⋅Xn(i)]=1m⋅XbT⋅(sigmoid(Xbθ)−y)\nabla J(\theta)= \frac{1}{m} \cdot \left[\begin{matrix} \sum\limits_{i=1}^m(\hat y^{(i)}-y^{(i)})\cdot X_0^{(i)} \\ \sum\limits_{i=1}^m(\hat y^{(i)}-y^{(i)})\cdot X_1^{(i)} \\ \sum\limits_{i=1}^m(\hat y^{(i)}-y^{(i)})\cdot X_1^{(i)} \\ \cdots \\ \sum\limits_{i=1}^m(\hat y^{(i)}-y^{(i)})\cdot X_n^{(i)} \end{matrix}\right]=\frac{1}{m}\cdot X_b^T\cdot (sigmoid(X_b\theta)-y)∇J(θ)=m1​⋅⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​i=1∑m​(y^​(i)−y(i))⋅X0(i)​i=1∑m​(y^​(i)−y(i))⋅X1(i)​i=1∑m​(y^​(i)−y(i))⋅X1(i)​⋯i=1∑m​(y^​(i)−y(i))⋅Xn(i)​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​=m1​⋅XbT​⋅(sigmoid(Xb​θ)−y)
    其中Xb=[1X1(1)X2(1)⋯Xn(1)1X1(2)X2(2)⋯Xn(2)⋯⋯1X1(m)X2(m)⋯Xn(m)]θ=[θ0θ1θ2⋯θn]其中 X_b=\left[\begin{matrix} 1 & X_1^{(1)} & X_2^{(1)} &\cdots & X_n^{(1)} \\ 1 & X_1^{(2)} & X_2^{(2)} &\cdots & X_n^{(2)} \\ \cdots & & & & \cdots\\ 1 & X_1^{(m)} & X_2^{(m)} &\cdots & X_n^{(m)} \end{matrix}\right] \qquad \theta=\left[\begin{matrix} \theta_0&\theta_1&\theta_2&\cdots&\theta_n \end{matrix}\right] 其中Xb​=⎣⎢⎢⎢⎡​11⋯1​X1(1)​X1(2)​X1(m)​​X2(1)​X2(2)​X2(m)​​⋯⋯⋯​Xn(1)​Xn(2)​⋯Xn(m)​​⎦⎥⎥⎥⎤​θ=[θ0​​θ1​​θ2​​⋯​θn​​]

4、决策边界

所谓决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界和非线性决策边界。下面举一个栗子:
对于sigmoid(x)sigmoid(x)sigmoid(x)而言,当x>0x>0x>0时,预测的概率p>0.5p>0.5p>0.5,模型该该类分为1,当x<0x<0x<0时,预测的概率p<0.5p<0.5p<0.5,模型该该类分为0,模型在x=0x=0x=0成功将类别分开。而对于逻辑回归而言x=θT⋅xb=0x=\theta^T\cdot x_b=0x=θT⋅xb​=0,决策边界便是θT⋅xb=0\theta^T\cdot x_b=0θT⋅xb​=0的地方,如果X有两个特征:θ0+θ1x1+θ2x2=0⇒x2=θ0−θ1x1θ2\theta_0+\theta_1x_1+ \theta_2x_2=0\Rightarrow x_2=\frac{\theta_0-\theta_1x_1}{\theta_2}θ0​+θ1​x1​+θ2​x2​=0⇒x2​=θ2​θ0​−θ1​x1​​,我们将 x2用y表示,x1用表示x,y=θ0−θ1xθ2x_2用y表示,x_1用表示x, y=\frac{\theta_0-\theta_1x}{\theta_2}x2​用y表示,x1​用表示x,y=θ2​θ0​−θ1​x​我们便可以画出它的决策边界


非线性决策边界

5、OvR与OvO

逻辑回归算法只能解决二分类问题,不过我们可以通过一些策略方法使逻辑回归算法同样能够解决多分类问题。让只能解决二分类问题的算法能够解决多分类的策略方法有两种:OvR和OvO。当然这两种方法不仅适用于逻辑回归算法,而是一种几乎能够改造所有二分类算法的通用方法。

  • OvR(One vs Rest)

首先来看OvR(One vs Rest),通过OvR的英文名可以知道是一对剩余的所有,不过在其它一些机器学习教材或者资料中可能将OvR称为OvA(One vs All),它们两个表达的意思是一样的。不过称为OvR更为准确一些,并且在Sklearn文档中也是使用OvR命名的。
什么叫做一对剩余的所有呢?比如对于下图的四分类任务。

这里用四种不同颜色的点来代表四种不同的类别,很显然对于这样的四分类任务不能直接使用只能解决二分类问题的逻辑回归算法来处理。不过我们可以将其转换为二分类问题,相应的选取其中某一个类别,比如此时选择红色类别,而对于剩下的三个类别将它们称为其它类别,这也是One vs Rest的含义所在,红色类别为One剩下的所有类别为Rest。


至此就将四分类问题转换成了二分类问题。当然这个转换二分类的过程不仅仅包含红色类别,还有其余三种类别对应的二分类,相对应的就会有四种二分类的情况。具体如下图所示。

  • OVO(One vs One)

OvO(One vs One),通过OvO的英文名可以知道是一对一的意思。这里依然使用拥有四个类别的四分类为例,每个类别用一个不同颜色的样本点来表示。
OvO就是每次直接挑选出其中的两个类别。比如这里挑出红色和蓝色这两个类别,然后对红色和蓝色两个类别进行二分类。
至此就将四分类的问题转换成了二分类问题。对于四分类来说,这个过程可以重复进行,四个类别每次选出两个类别,一共有 C(4, 2) = 6个不同两两类别对,也就是形成6个二分类任务。
对于6个二分类问题,每一个二分类都可以估计出预测新样本属于对应两个类别中的哪一个类别,然后这6个分类结果进行投票选择分类结果数量最多的类别作为新样本点的类别。

参考:
https://cloud.tencent.com/developer/article/1605609

机器学习笔记(五)逻辑回归 、决策边界、OvR、OvO相关推荐

  1. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  2. 机器学习笔记-基于逻辑回归的分类预测

    天池学习笔记:AI训练营机器学习-阿里云天池 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有&quo ...

  3. 机器学习笔记(5)——逻辑回归

    上一篇:机器学习笔记(4)--多变量线性回归 逻辑回归实际是一种有监督学习中的分类算法,称为回归是历史原因 前言 前面我们已经学习了线性回归,线性回归适用于预测一个连续值,就是说预测值可能的范围存在连 ...

  4. python逻辑回归训练预测_[Python] 机器学习笔记 基于逻辑回归的分类预测

    导学问题 什么是逻辑回归(一),逻辑回归的推导(二 3),损失函数的推导(二 4) 逻辑回归与SVM的异同 逻辑回归和SVM都用来做分类,都是基于回归的概念 SVM的处理方法是只考虑 support ...

  5. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  6. 吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码

    吴恩达<机器学习>笔记八--逻辑回归(多分类)代码 导入模块及加载数据 sigmoid函数与假设函数 代价函数 梯度下降 一对多分类 预测验证 课程链接:https://www.bilib ...

  7. 吴恩达机器学习课后习题——逻辑回归

    机器学习课后作业-逻辑回归 逻辑回归 逻辑回归算法,是一种给分类算法,这个算法的实质是:它输出值永远在0到 1 之间. 将要构建一个逻辑回归模型来预测,某个学生是否被大学录取.设想你是大学相关部分的管 ...

  8. 机器学习算法 03 —— 逻辑回归算法(精确率和召回率、ROC曲线和AUC指标、过采样和欠采样)

    文章目录 系列文章 逻辑回归 1 逻辑回归介绍 1.1 逻辑回归原理 输入 激活函数 1.2 损失以及优化 2 逻辑回归API介绍 3 案例:肿瘤良性恶性预测 4 分类模型的评估 4.1 分类评估方法 ...

  9. 机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

    机器学习:基于逻辑回归对航空公司乘客满意度的因素分析 作者:i阿极 作者简介:数据分析领域优质创作者.多项比赛获奖者:博主个人首页

  10. 斯坦福大学吴恩达机器学习教程中文笔记——week3——逻辑回归,正则化

    第3周 文章目录 第3周 @[toc] 六.逻辑回归(Logistic Regression) 6.1 分类问题 6.2 假说表示 6.3 判定边界 6.4 代价函数 6.5 简化的成本函数和梯度下降 ...

最新文章

  1. CPU的自动调度矩阵乘法
  2. R语言apriori算法进行关联规则挖掘(限制规则的左侧或者右侧的内容进行具体规则挖掘)、查看限制了规则的右侧之后挖掘到的规则(置信度排序,只查看左侧即可)
  3. Java动态代理的实现
  4. c++字符串拼接_Python零基础入门(三):字符串进阶
  5. Python数据类型知识点
  6. mysql datetime最小值_MySQL的5种时间类型的比较
  7. Flask 中的Jinja2模板引擎
  8. 在mysql支持关系模型中_MySQL支持关系模型中、和三种不同的完整性约束
  9. vue生命周期及其应用场景
  10. ocp认证考试指南第一章
  11. Linux yum安装unrar、rar
  12. [Python] 当猎头遇上 Guido van Rossum
  13. C++学习笔记----2.4 C++对象的内存模型
  14. 常用电子元件识别图解大全
  15. 单片机开发之嵌入式基础
  16. 苹果5更新系统无服务器,苹果5手机系统更新不了出现无法检查更新怎么处理
  17. 安卓苹果手机在微信内打开支付宝h5拉起app支付
  18. 计算机三级数据库好考吗,2019计算机三级数据库难吗 如何备考
  19. 时空大数据与众包计算学习总结
  20. ThinkPHP中的exp查询

热门文章

  1. vue接口多个参数多个组件互动导致数据渲染混乱bug
  2. memcached(十三)注意事项
  3. 图形界面介绍Summary Report
  4. 蚁群算法一个VRP小实现
  5. MUI click事件无效 click没反应 click监听不到
  6. 物联网萤石云获取登录的accessToken工具类
  7. 6-6 Isleap (5 分)
  8. 渗透测试(面试)如何获取一个网站的真实ip
  9. android Q屏幕录制,设备音频录制无声
  10. 解密MySQL 8.0 multi-valued indexes