机器学习11:逻辑回归-Logistic Regression

目录

1.计算概率

2.损失和正则化

2.1 逻辑回归的损失函数

2.2 逻辑回归中的正则化

3.参考文献


1.计算概率

许多问题需要概率估计作为输出。逻辑回归是一种极其有效的概率计算机制。实际上,我们可以通过以下两种方式使用返回的概率:

  • 原始概率:不经转换的原始计算结果
  • 二元类别:将原始计算结果转换为二元类别

那么,如何 “按原样” 使用概率?假设我们创建一个 逻辑回归(Logistic Regression模型来预测狗在半夜吠叫的概率。我们称这个概率为:

p(bark | night)

如果逻辑回归模型预测 p(bark | night) = 0.05,那么在一年多的时间里,狗的主人应该被惊醒大约 18 次:

startled = p(bark | night) * nights = 0.05 * 365 = 18

在许多情况下,我们倾向于将逻辑回归输出映射到二元分类问题的解决方案中,其中的目标是正确预测两个可能的标签之一(例如 “垃圾邮件” 或 “非垃圾邮件”)。那么,逻辑回归模型如何确保输出始终落在 0 和 1 之间呢?这就需要特殊的函数来辅助了,如下的 sigmoid 函数会产生具有相同特征的输出:

y = \frac{1}{1 + e^{-z}}

sigmoid 函数产生以下图:

图 1:S 型函数

如果 z 表示用逻辑回归训练的模型的线性层的输出,然后 sigmoid(z) 将产生一个介于 0 和 1 之间的值(概率)。用数学术语来说:

y' = \frac{1}{1 + e^{-z}}

其中,

  • y' 是特定示例的逻辑回归模型的输出。
  • z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N
    •  w 值是模型的学习权重,并且 b 是偏差。
    • x 值是特定示例的特征值。

注意:z 也称为对数概率,因为 sigmoid 的倒数表明,z 可以定义为概率的对数:

z = \log\left(\frac{y}{1-y}\right)

这是带有 ML 标签的 sigmoid 函数:

图 2:逻辑回归输出

 

2.损失和正则化

2.1 逻辑回归的损失函数

线性回归的损失函数是平方损失。逻辑回归的损失函数是对数损失:Log Loss,其定义如下:

\text{Log Loss} = \sum_{(x,y)\in D} -y\log(y') - (1 - y)\log(1 - y')

上述公式中,

  • (x,y)\in D 是包含许多标记示例的数据集,这些示例是 (x,y) 对。
  • y 是带标签示例中的标签。由于这是逻辑回归,因此每个 y 值必须为 0 或 1。
  • y' 是预测值(介于 0 和 1 之间),给定特征集 x

2.2 逻辑回归中的正则化

正则化 在逻辑回归建模中极其重要。如果没有正则化,逻辑回归的渐近性质会将高维损失推向 0。因此,大多数逻辑回归模型使用以下两种策略之一来降低模型复杂性:

  • L_{2} 正则化。
  • 提前停止,即限制训练步骤数或学习率。

在后面的文章中,笔者将介绍第三种策略——L_{1} 正则化 。想象一下,为每个示例分配一个唯一的 id,并将每个 id 映射到其自己的特征。如果不指定正则化函数,模型将完全过拟合。这是因为该模型会尝试将所有示例的损失推至零,但永远无法实现这一目标,从而将每个指标特征的权重推向+无穷大或-无穷大。这种情况可能发生在具有特征交叉的高维数据中,当存在大量罕见交叉且每个交叉仅发生在一个示例上时。幸运的是,使用 L_{2} 或提前停止训练可以避免这个问题。

概括

  • 逻辑回归模型生成概率。
  • 对数损失是逻辑回归的损失函数。
  • 逻辑回归被许多从业者广泛使用。

3.参考文献

链接-https://developers.google.cn/machine-learning/crash-course/logistic-regression/model-training

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git常用命令之远程仓库别名

12. 远程仓库别名 12.1 查看远程仓库名称 命令作用git remote查看关联的远程分支$ git remoteorigingit remote -v查看本地仓库关联的远程仓库信息$ git remote -vorigin gitgithub.com:kaku/reading-note-tutorails.git (fetch)origin gitgithub.com:kaku/reading-note-tuto…

59 KVM Skylark虚拟机混部-概述、架构及特性

文章目录 59 KVM Skylark虚拟机混部-概述、架构及特性59.1 Skylark概述59.1.1 问题背景59.1.2 总体介绍 59.2 架构及特性59.2.1 总体实现框架59.2.2 功耗干扰控制59.2.3 LLC/MB干扰控制59.2.4 CPU干扰控制 59 KVM Skylark虚拟机混部-概述、架构及特性 59.1 Skylark概述 59.1.…

Ubuntu 20.04.02 LTS安装virtualbox7.0

ubuntu22.04的软件仓库也有virtualbox,不过版本较老。 使用安装命令:sudo apt install virtualbox 如果想要安装最新版,那么需要去官网下载deb包或者使用官方的仓库。 这里采用安装Oracle官方仓库的方法。 执行如下命令: wge…

流量分析工具wireshark-学习笔记

(一)wireshark工具 1、wireshark工具简介 Wireshark是一种开源网络分析工具,它可以让你在计算机网络上捕获和查看数据包,并能帮助你深入了解网络的运行和协议的实现。它可以捕获不同类型的流量,包括以太网、Wi-Fi、TC…

02-独立按键控制LED状态

程序 #include <REGX52.H>void main() {while(1) {if(P3_1 0) //DOWN{P2_0 0xFE;}if(P3_1 1) //UP{P2_0 0XFF;}};}按键的抖动问题 软件实现解决-按键的抖动问题 通过延时解决 #include <REGX52.H>void Delay(unsigned int xms) {while(xms){unsigned cha…

计算机网络————网络层

文章目录 网络层设计思路IP地址IP地址分类IP地址与硬件地址 协议ARP和RARPIP划分子网和构造超网划分子网构造超网&#xff08;无分类编址CIDR&#xff09; ICMP 虚拟专用网VPN和网络地址转换NATVPNNAT 网络层设计思路 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数…

排序算法--冒泡排序(Java语言)

冒泡排序&#xff08;Bubble Sort&#xff09;是啥&#xff1f; 冒泡排序是一种简单的排序算法。它重复地走访过要排序的元素列&#xff0c;依次比较两个相邻的元素&#xff0c;如果他们的顺序&#xff08;如从大到小、首字母从A到Z&#xff09;错误就把他们交换过来。走访元素…

Idea新建springboot项目遇到的问题及解决

1.更换阿里云 方法&#xff1a; 找到文件路径&#xff1a;Settings > Build,Execution,Deployment > Build Tools > Maven 如下图&#xff1a; 找到相应的settings文件 如果没有就新建一个同名文件&#xff0c;内容如下&#xff1a; <settings xmlns"h…

案例赏析 | 新疆喀什:“大型充电宝”扎根戈壁,让新能源供电更稳定

在喀什&#xff0c;你可以置身秘境&#xff0c;一睹帕米尔高原、乔戈里峰、“冰山之父”慕士塔格峰的壮丽&#xff1b;可以走进喀什古城&#xff0c;在街头巷尾、一砖一瓦间感受丝路风情&#xff1b;可以探访塔克拉玛干沙漠&#xff0c;开始一场关于冒险者的游戏&#xff1b;也…

基于深度学习的高精度绵羊检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度绵羊检测识别系统可用于日常生活中或野外来检测与定位绵羊目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的绵羊目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

html实现好看的多种风格导航菜单(附源码)

文章目录 1.设计来源1.1 顶部导航菜单1.1.1 界面风格1-一二级连体导航菜单1.1.2 界面风格2-二级导航下拉框1.1.3 界面风格3-系统开始风格1.1.4 界面风格4-购物类导航菜单1.1.5 界面风格5 - 带搜索扩展的导航条1.1.6 界面风格6-火热效果多级导航条 1.2 悬浮按钮菜单1.2.1 界面风…

OpenResty shared dict

cosocket 是各种 lua-resty-* 非阻塞库的基础 cosocket coroutine socket 需要 Lua 协程特性的支持&#xff0c;也需要 Nginx 事件机制的支持&#xff0c;两者结合在一起实现非阻塞网络 I/O。 遇到网络 I/O 时会交出控制权&#xff0c;把网络事件注册到 Nginx 监听列表中&a…