损失函数的概念

在学习决策树时,曾经提到过两种模型表现:在训练集上的表现,和在测试集上的表现。建模,是追求模型在测试集上的表现最优,因此模型的评估指标往往是用来衡量模型在测试集上的表现的。然而,逻辑回归有着基于训练数据求解参数的需求,并且希望训练出来的模型能够尽可能地拟合训练数据,即模型在训练集上的预测准确率越靠近100%越好。
因此,**使用”损失函数“这个评估指标,来衡量参数为的模型拟合训练集时产生的信息损失的大小,并以此衡量参数的优劣。**如果用一组参数建模后,模型在训练集上表现良好,就说模型拟合过程中的损失很小,损失函数的值很小,这一组参数就优秀;相反,如果模型在训练集上表现糟糕,损失函数就会很大,模型就训练不足,效果较差,这一组参数也就比较差。即是说,在求解参数时,追求损失函数最小,让模型在训练数据上的拟合效果最优,即预测准确率尽量靠近100%。

损失函数

衡量参数的优劣的评估指标,用来求解最优参数的工具
损失函数小,模型在训练集上表现优异,拟合充分,参数优秀
损失函数大,模型在训练集上表现差劲,拟合不足,参数糟糕
我们追求,能够让损失函数最小化的参数组合
注意:没有”求解参数“需求的模型没有损失函数,比如KNN,决策树
逻辑回归的损失函数是由极大似然估计推导出来的,具体结果可以写作:
J(ω)=−∑i=1m(yi∗log(yω(xi))+(1−yi)∗log(1−yω(xi)))J(\omega)=-\sum^m_{i=1}(y_i*log(y_\omega(x_i))+(1-y_i)*log(1-y_\omega(x_i)))J(ω)=−i=1∑m​(yi​∗log(yω​(xi​))+(1−yi​)∗log(1−yω​(xi​)))
其中, ω表示求解出来的一组参数,m是样本的个数, yiy_iyi​是样本i上真实的标签,yω(xi)y_\omega(x_i)yω​(xi​)是样本i上,基于参数ω计算出来的逻辑回归返回值,xi是样本i各个特征的取值。我们的目标,就是求解出使J(ω)最小的ω取值。注意,在逻辑回归的本质函数y(x)里,特征矩阵x是自变量,参数是ω。但在损失函数中,ω是损失函数的自变量,x和y都是已知的特征矩阵和标签,相当于是损失函数的参数。不同的函数中,自变量和参数各有不同,因此,需要在数学计算中,尤其是求导的时候避免混淆。
由于追求损失函数的最小值,让模型在训练集上表现最优,可能会引发另一个问题:如果模型在训练集上表示优秀,却在测试集上表现糟糕,模型就会过拟合。虽然逻辑回归和线性回归是天生欠拟合的模型,但还是需要控制过拟合的技术来帮助调整模型,对逻辑回归中过拟合的控制,通过正则化来实现

二元逻辑回归损失函数的数学解释,公式推导

虽然我们质疑过”逻辑回归返回概率“这样的说法,但不可否认逻辑回归的整个理论基础都是建立在这样的理解上的。在这里,基于极大似然法来推导⼆二元逻辑回归的损失函数,这个推导过程能够帮助我们了解损失函数怎么得来的,以及为什么J(ω)的最小化能够实现模型在训练集上的拟合最好。
我们的目标:让模型对训练数据的效果好,追求损失最小。
二元逻辑回归的标签服从伯努利利分布(即0-1分布),因此,可以将一个特征向量为x,参数为ω的模型中的一个样本i的预测情况表现为如下形式:
样本i在由特征向量xi和参数ω组成的预测函数中,样本标签被预测为1的概率为:
P1=P(y^i)=1∣xi,ω)=yω(xi)P_1=P(\hat{y}_i)=1|x_i,\omega)=y_{\omega}(x_i)P1​=P(y^​i​)=1∣xi​,ω)=yω​(xi​)
样本i在由特征向量xi和参数ω组成的预测函数中,样本标签被预测为0的概率为:
P10=P(y^i)=0∣xi,ω)=1−yω(xi)P_10=P(\hat{y}_i)=0|x_i,\omega)=1-y_{\omega}(x_i)P1​0=P(y^​i​)=0∣xi​,ω)=1−yω​(xi​)
当P1的值为1的时候,代表样本i的标签被预测为1,当P0的值为1的时候,代表样本i的标签被预测为0。
假设样本i的真实标签yi为1,此时如果P1为1,P0为0,就代表样本i的标签被预测为1,与真实值一致。此时对于单样本i来说,模型的预测就是完全准确的,拟合程度很优秀,没有任何信息损失。相反,如果此时P1为0,P0为1,就代表样本i的标签被预测为0,与真实情况完全相反。对于单样本i来说,模型的预测就是完全错误的,拟合程度很差,所有的信息都损失了。当yi为0时,也是同样的道理。
所以,当yi为1的时候,我们希望P1非常接近1,当yi为0的时候,我们希望P1非常接近1,这样,模型的效果就很好,信息损失就很少。

将两种取值的概率整合,可以定义如下等式:
P(y^i∣xi,ω)=P1yi∗P01−yiP(\hat{y}_i|x_i,\omega)=P_1^{y_i}*P_0^{1-y_i}P(y^​i​∣xi​,ω)=P1yi​​∗P01−yi​​
这个等式同时代表了P1和P0。当样本i的真实标签yi为1的时候,1-yi就等于0,P0的0次方就是1,所以P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)就等于P1,这个时候,如果P1为1,模型的效果就很好,损失就很小。同理,当yi为0的时候, P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)就等于P0,此时如果P0非常接近1,模型的效果就很好,损失就很小。
所以,为了达成让模型拟合好,损失小的目的,希望P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)的值等于1。而P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)的本质是样本i由特征向量xi和参数ω组成的预测函数中,预测出所有可能的y^i\hat{y}_iy^​i​的概率,因此1是它的最大值。也就是说,追求P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)的最大值。这就将模型拟合中的“最小化损失”问题,转换成了对函数求解极值的问题。
P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)是对单个样本i而言的函数,对一个训练集的m个样本来说,可以定义如下等式来表达所有样本在特征矩阵X和参数ω组成的预测函数中,预测出所有可能的y^\hat{y}y^​概率P为:

对该概率P取以e为底的对数,再由log(A∗B)=logA+logBlog(A*B)=logA+logBlog(A∗B)=logA+logB和logAB=BlogAlogA_B=BlogAlogAB​=BlogA可得到:

这就是交叉熵函数。为了数学上的便利以及更好地定义”损失”的含义,希望将极大值问题转换为极小值问题,因此,对logP取负,并且让参数ω作为函数的自变量,就得到了损失函数J(ω):

这就是一个,基于逻辑回归的返回值yω(xi)的概率性质得出的损失函数。在这个函数上,只追求最小值,就能让模型在训练数据上的拟合效果最好,损失低。这个推导过程,其实就是“极大似然法”的推导过程。

关键概念:似然与概率

似然与概率是一组非常相似的概念,它们都代表着某件事发生的可能性,但它们在统计学和机器学习中有着微妙的不同。以样本i为例,有表达式:
P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)
对这个表达式而言,如果参数ω是已知的,特征向量xi是未知的,则称P是在探索不同特征取值xi下获取所有可能的y^\hat{y}y^​的可能性,这种可能性就被称为概率,研究的是自变量xi和因变量y^\hat{y}y^​之间的关系。
如果特征向量xi是已知的,参数ω是未知的,则称P是在探索不同参数ω下获取所有可能的y^\hat{y}y^​的可能性,这种可能性就被称为似然,研究的是参数取值ω与因变量y^\hat{y}y^​之间的关系。
在逻辑回归的建模过程中,特征矩阵X是已知的,参数ω是未知的,因此,讨论的所有“概率”其实严格来说都应该是“似然”。追求P(y^i∣xi,ω)P(\hat{y}_i|x_i,\omega)P(y^​i​∣xi​,ω)的最大值(换算成损失函数之后取负,所以是最小值),是在追求“极大似然”,所以逻辑回归的损失函数的推导方法叫做”极大似然法“。也因此,以下式子又被称为”极大似然函数“:
P(y^i∣xi,ω)=yω(xi)yi∗(1−yω(xi))(1−yi)P(\hat{y}_i|x_i,\omega)=y_\omega(x_i)^{y_i}*(1-y_\omega(x_i))^{(1-y_i)}P(y^​i​∣xi​,ω)=yω​(xi​)yi​∗(1−yω​(xi​))(1−yi​)

机器学习:二元逻辑回归的损失函数相关推荐

  1. 机器学习--LR逻辑回归与损失函数理解

    损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好.损失函数是经验 ...

  2. 机器学习 -- 二元逻辑回归实例

    二元逻辑回归可用于向量的概率预测,是一种分类算法.迭代方式可选择最小二乘法或梯度下降. 迭代之后会得到每个特征的系数. 公式(对于有N个特征的向量,其中w[i]为权): f(x) = 1/(1+ e^ ...

  3. 二元逻辑回归损失函数的数学解释与公式推导

    我们基于极大似然法来推导二元逻辑回归的损失函数,这个推导过程能够帮助我们了解损失函数怎么 得来的,以及为什么J(θ)J(\theta)J(θ)的最小化能够实现模型在训练集上的拟合最好. 我们的目标是: ...

  4. Python梯度下降法实现二元逻辑回归

    Python梯度下降法实现二元逻辑回归 二元逻辑回归假设函数 定义当函数值大于等于0.5时,结果为1,当函数值小于0.5时,结果为0.函数的值域是(0, 1). 二元逻辑回归的损失函数 上图为二元逻辑 ...

  5. 《人工智能》机器学习 - 第5章 逻辑回归(二 二元逻辑回归实战)

    5.2二元逻辑回归实战 5.2.1二元逻辑回归简单实例 首先看看数据吧. 随机的一些数据,这是一个二分问题的数据.先导入数据.Python代码如下. """ 函数说明:读 ...

  6. 二元逻辑回归 · 数学推导过程及代码实现完全解析

    文章目录 概述 两个重要函数 预测的基本思想 二元逻辑回归 线性模型的简单回顾 从线性回归到二元逻辑回归 参数怎么估计 梯度下降 牛顿迭代 最近修改:2021/6/17 原文<从二元逻辑回归到多 ...

  7. 练习:二元逻辑回归实现

    一.什么是逻辑回归模型 逻辑回归模型是线性的二分类模型. 逻辑回归的表达式: f(x)就是大名鼎鼎的Sigmoid函数,也称为Logistic函数.这个函数的曲线如下: sigmoid函数的作用就是将 ...

  8. 简单粗暴理解与实现机器学习之逻辑回归:逻辑回归介绍、应用场景、原理、损失以及优化...

    作者 | 汪雯琦 责编 | Carol 来源 | CSDN 博客 出品 | AI科技大本营(ID:rgznai100) 学习目标 知道逻辑回归的损失函数 知道逻辑回归的优化方法 知道sigmoid函数 ...

  9. 线性回归、逻辑回归、损失函数

    回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数.然后利用这个模型去预测/分类新的数据. 1. 线性回归 假设 特征 和 结果 ...

最新文章

  1. nginx内置变量 大全
  2. 鸟哥的Linux私房菜(服务器)- 第十二章、网络参数控管者: DHCP 服务器
  3. android提交项目到svn,Android Studio 配置SVN,通过Share project提交项目和实现忽略文件...
  4. linux0.11内核视频讲解,linux0.11内核分析-setup
  5. 盗墓笔记android,盗墓笔记手游下载
  6. [产品] 敏捷开发软件(一)——团队看板
  7. 案例应用|如何借助SPC软件实现汽车零配件品质管理
  8. HIVE的基本使用05(HSQL调优)
  9. 【python技巧】RGB值组合三元色(红绿蓝)
  10. Matlab 自定义colormap
  11. 搭建Hadoop集群后一直使用的start-all.sh到底是个什么操作
  12. android自定义打电话界面,两种Android打电话实现方法
  13. 后台进程很少,CPU内存却占用过高!
  14. FPGA 20个例程篇:9.DDR3内存颗粒初始化写入并通过RS232读取(下)
  15. 【空指针异常,也不全是。】
  16. 基于改进yolov4和unet的飞机目标的分割
  17. 利用腾讯 优图visionseed硬件 实现人脸疲劳检测项目(包括数据读取,数据保存,数据web端展示)
  18. 几个常见的B端推广渠道
  19. NYOJ-682 小媛在努力 (郑大第六届校赛 模拟)
  20. 著名安全组织邪恶八进制遭到不明攻击

热门文章

  1. Android开发之实现Android原生定位
  2. 什么牌子蓝牙耳机好?游戏党双十一最强蓝牙耳机选购清单
  3. PL/SQL注册 产品编号 序列号 口令
  4. 防雷工程,浪涌保护器是如何防雷的
  5. 微信公众号 订阅号 生成带参数二维码
  6. PCA以及RFE降噪【python】
  7. 怎样在公众号文章中添加**报名表
  8. Mstar的Monitor方案OSD 菜单制作(一)————开篇
  9. icework根据模型生成html,飞冰GUI官方使用教程 Iceworks快速开始
  10. goconvey学习笔记:测试工具