逻辑回归代价函数

news2024/9/27 15:30:56

逻辑回归的代价函数通常使用交叉熵损失来定义。这种损失函数非常适合于二元分类问题。

本篇来推导一下逻辑回归的代价函数。

首先,我们在之前了解了逻辑回归的定义:逻辑回归模型是一种用于二元分类的模型,其预测值是一个介于0和1之间的概率。模型的形式是一个S形的逻辑函数(sigmoid函数),但是sigmoid函数的参数到底要选哪个,就需要对sigmoid函数的结果进行评判,因此也就需要第二步:损失评估。

举个例子:

假设我们有一个逻辑回归模型,用来预测学生是否会通过最终考试。我们有两个特征:学生的出勤率和平均成绩。模型的目标是基于这些特征预测学生是否会通过考试("通过"记为1,"不通过"记为0)。

特征和参数
  • 假设特征向量 x = [ x 1 x 2 ] x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} x=[x1x2],其中 x 1 x_1 x1是学生的出勤率, x 2 x_2 x2是学生的平均成绩。
  • 模型的参数为 θ = [ θ 0 θ 1 θ 2 ] \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \end{bmatrix} θ= θ0θ1θ2 ,其中 θ 0 \theta_0 θ0是偏置项, θ 1 \theta_1 θ1 θ 2 \theta_2 θ2分别是与出勤率和平均成绩相关的权重。
计算 h ( x ) h(x) h(x)

模型会计算 h ( x ) h(x) h(x),即给定特征时通过考试的预测概率。这是通过sigmoid函数来完成的:

h θ ( x ) = 1 1 + e − ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_\theta(x) = \frac{1}{1 + e^{-(\theta_0 + \theta_1 x_1 + \theta_2 x_2)}} hθ(x)=1+e(θ0+θ1x1+θ2x2)1

假设对于一个特定学生,出勤率 x 1 = 0.85 x_1 = 0.85 x1=0.85(85%),平均成绩 x 2 = 75 x_2 = 75 x2=75,而模型参数为 θ 0 = − 4 \theta_0 = -4 θ0=4 θ 1 = 10 \theta_1 = 10 θ1=10 θ 2 = 0.05 \theta_2 = 0.05 θ2=0.05。那么 h ( x ) h(x) h(x)的计算为:

h θ ( x ) = 1 1 + e − ( − 4 + 10 × 0.85 + 0.05 × 75 ) h_\theta(x) = \frac{1}{1 + e^{-(-4 + 10 \times 0.85 + 0.05 \times 75)}} hθ(x)=1+e(4+10×0.85+0.05×75)1

计算这个表达式的值(这需要一些数学运算),假设结果是 h θ ( x ) ≈ 0.76 h_\theta(x) \approx 0.76 hθ(x)0.76。这意味着根据我们的模型,这个学生通过考试的预测概率是 76%。基于这个预测,由于概率大于0.5,我们可以预测这个学生会通过考试。

到这一步为止, θ 0 = − 4 \theta_0 = -4 θ0=4 θ 1 = 10 \theta_1 = 10 θ1=10 θ 2 = 0.05 \theta_2 = 0.05 θ2=0.05实际上是我们随机(或经验)取的一组参数数值,但其并不是最佳的,所以就需要有一个代价函数来判断整体的损失(正确率),再进行梯度下降(或其他优化算法)来迭代地调整这些参数,以获得最小化损失。

在逻辑回归中,由于目标结果只有0和1两种情况,因此去计算一组数据的损失的时候就需要区分成两个函数

当 y=1 时的损失函数

Cost when  y = 1 : − log ⁡ ( h θ ( x ) ) \text{Cost when } y = 1: -\log(h_\theta(x)) Cost when y=1:log(hθ(x))

当 y=0 时的损失函数

Cost when  y = 0 : − log ⁡ ( 1 − h θ ( x ) ) \text{Cost when } y = 0: -\log(1 - h_\theta(x)) Cost when y=0:log(1hθ(x))
对应的图如下:
在这里插入图片描述
用一个式子来同时包含这两个情况就是我们的逻辑回归的代价函数(交叉熵损失):
J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]
我们可以看到这里 l o g ( h θ ( x ( i ) ) ) log(h_\theta(x^{(i)})) log(hθ(x(i)))前面乘以了 y ( i ) y^{(i)} y(i),所以当目标值为0的时候,这部分就变成了0,也就不会影响后面部分的计算,就很简单地实现了两个式子融合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1323771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP32 - Thonny+MicroPython+ESP32开发环境搭建

ThonnyMicroPythonESP32开发环境搭建 ①下载Thonny②下载MicroPython③下载对应驱动④烧录MicroPython到EPS32⑤Thonny与ESP32交互到此为止,我们就搭建好了整个流程 ①下载Thonny 链接:https://thonny.org/ ②下载MicroPython 链接:https:…

2023年第四届 “赣网杯” 网络安全大赛 gwb-web3 Write UP【PHP 临时函数名特性 + 绕过trim函数】

一、题目如下: 二、代码解读: 这段代码是一个简单的PHP脚本,它接受通过GET请求传递的两个参数:‘pass’和’func’: ① $password trim($_GET[pass] ?? );:从GET请求中获取名为’pass’的参数&#xff0…

0086-Java_四种进制介绍

文章目录 1 进制(程序员的基本功)1.1 进制介绍1.2 进制的转换(基本功)1.2.1 进制转换的介绍 1.3 二进制在运算中的说明1.4 原码、反码、补码(重点 难点) 1 进制(程序员的基本功) 1.1 进制介绍 对于整数,有四种表示方式: 二进制:0,1 &#x…

command ‘python.execSelectionInTerminal‘ not found

command python.execSelectionInTerminal not found 问题描述解决方案 问题描述 选择解释器提示: 解决方案 在左侧栏中搜索workspaceUnsupported 可以看到Python在受限制模式下运行 关闭受限制模式 再来看就没有受限制了 这就可以选择解释器了 参考1 参考…

细说 MySQL 用户安全加固策略

这是一篇关于如何加强 MySQL 用户安全的文章,通读全文您可以了解密码复杂度策略、连接控制插件以及密码变更策略的相关知识。本文内容仅供参考,请在操作时以实际环境为准,避免造成经济损失。 作者:余振兴,爱可生 DBA 团…

7-1 抢红包(PTA - 数据结构)

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。…

[每周一更]-(第31期):Mysql安装汇总

写自:20230204 23:25 一. mysql rpm二进制包 rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm yum install mysql-community-server service mysqld start set password password(“123456”)二. mysql yum安装 1、安装查看有没有安装…

Dbvis 链接Oracle数据库

安装 Dbvisualizer 后 1,打开Dbvisualizer,单机左键 图片标注处。 2,点击右键,显示。 3,点击Creat Datebase Connection 4,点击 use wizard ,填写 地址,下一步 5,选择 Orcal Thin …

华为atlas300安装教程

1、安装包位置: /data/ai_install_packages 2、添加HwHiAiUser用户: groupadd -g 1000 HwHiAiUser useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash 3、安装驱动: ./Ascend-hdk-310p-npu-driver_6.0.0_l…

【小技巧】得力多功能计算器,小数变成10的负幂,应该怎么设置正常显示小数

1.本人计算器如图 2.点击MODE,再次点击可以翻页,找到NORM,如图是3 3.1次方,2是小数点。再摁一下2即可

速通Python基础语法--变量篇

Python设计哲学 解决一个问题,只提供一种方案:变量类型 写法灵活,一行代码表达更多意思,提高语言表达能力:动态类型(两面性) 颜色标识: 紫色:Python与C语言的区别 一、常量与表达式 二、变量 1、认识变量(存数据&am…

读书笔记产品经理学习笔记1-忘掉技术,先看客户需求

技术到产品思维的转换 以前做技术的时候,扮演的角色是怎样多快好省的完成开发。现在做产品了,你得自己定产品方案,让别人来开发。最重要的是先弄清楚客户的需求是什么,要解决什么问题,再看产品怎么设计,然…

中国风春节倒计时【实时倒计时】

<head><meta charset="UTF-8"><meta name="apple-mobile-web-app-title

Elasticsearch——索引数据

索引可以说是Elasticsearch中非常重要的模块&#xff0c;一个索引可以视作关系数据库中的一张表&#xff0c;本帖将详细介绍与Elasticsearch索引相关的各种功能等。主要内容如下&#xff1a; 索引映射(mapping)结构的定义方法&#xff0c;常用的各种字段类型和动态映射的使用。…

pytorch实现DCP暗通道先验去雾算法及其onnx导出

pytorch实现DCP暗通道先验去雾算法及其onnx导出 简介实现ONNX导出导出测试 简介 最近在做图像去雾&#xff0c;于是在Pytorch上复现了一下dcp算法。暗通道先验去雾算法是大神何恺明2009年发表在CVPR上的一篇论文&#xff0c;还获得了当年的CVPR最佳论文。 实现 具体原理就不…

微课录课软件盘点,让教学变得更轻松!

“有人知道怎么录制课程吗&#xff1f;上网课的时候&#xff0c;老师讲课的速度很快&#xff0c;有些知识点还没理解&#xff0c;就已经跳过了&#xff0c;这时我就想把网课录下来&#xff0c;课后再进行复习&#xff0c;大家有什么录课的软件推荐吗&#xff1f;” 随着信息技…

微信小程序动态导航栏(uniapp + vant)

本文使用到vant的van-tabbar组件来实现 一、uniapp整合vant ui vant小程序版本:https://vant-contrib.gitee.io/vant-weapp/#/home 注:vant并没有uniapp的版本,所以此处是引入小程序版本的ui 1. 下载vant编译后代码 https://github.com/youzan/vant-weapp/tree/dev/dist 2…

SpringBoot框架介绍数据库操作Mybatis注入JDBC注入

目录 0x00 前言 0x01 SpringBoot框架介绍 1、SpringBoot实现简单的 GET、POST 请求 2、SpringBoot 实现数据库操作 0x02 JDBC&Mybatis注入 0、环境及靶场介绍 - Hello-Java-Sec 1、JDBC 注入 2、Mybatis 注入 3、代码审计案例 - inxedu 后台 MyBatis 注入 0x00 前…

神经网络Python实现(9行代码)

1. 神经网络简介 神经网络由输入层、输出层和之间若干层&#xff08;一层或多层&#xff09;隐含层构成&#xff0c;每一层可以有若干个节点。层与层之间节点的连接状态通过权重来体现。 下面介绍一下单个神经元&#xff1a; 输入节点&#xff1a;x1,x2 权重&#xff1a;w1,w…

27.BGP边界网关路由协议

BGP边界网关路由协议 外部网关路由协议 ospf能承载的路由条目有限 用在运营商与运营商之间&#xff0c;国与国之间 BGP运行在IGP之上&#xff08;内部网关路由&#xff09; IGP都是在物理链路上直连的基础之上才能建立邻居关系&#xff0c;BGP可以跨路由器建立邻居关系&…