一文弄懂逻辑回归算法

news2024/11/25 15:50:44

1. 引言

今天我们将深入探讨另一种基本的机器学习算法:逻辑回归。在前两篇文章中,我们使用线性回归和梯度下降法帮助我们的朋友马克确定了他 2400 平方英尺房子的理想售价。

最近马克再次向我们求助。他住在一个高档社区,他认为低于一定面积的房子是卖不出去的,他担心自己的房子也卖不出去。他请我们帮他确定他的房子卖出的可能性有多大。这就是逻辑回归算法的作用所在。

闲话少说,我们直接开始吧!

2. 问题引入

逻辑回归是一种预测二元结果概率的算法,例如房屋是否会售出。与线性回归不同,逻辑回归使用 0% 到 100% 的范围预测概率。请注意线性回归模型和逻辑回归模型预测结果的区别:
在这里插入图片描述

让我们通过确定不同面积房屋的销售概率来深入探讨逻辑回归的工作原理。我们再次开始收集马克所在社区的房屋面积数据,并查看它们是否售出。
在这里插入图片描述

现在,让我们来绘制这些点:

在这里插入图片描述

与其用二进制输出来表示绘图结果,不如用概率来表示,因为我们要预测的就是概率。

我们将 100% 的概率表示为 1,将 0% 的概率表示为 0

在这里插入图片描述

3. 线性回归的问题

在上一篇文章中,我们了解了线性回归及其根据数据拟合直线的能力。但是,对于我们需要输出概率的问题,线性回归是否有效呢?让我们通过尝试使用线性回归拟合一条直线来找出答案。

我们知道,线性回归算法最佳拟合方程的公式如下:
在这里插入图片描述

按照线性回归的求解步骤,我们可以获得 β₀ 和 β₁ 的最佳值,从而得到最佳拟合线。假设我们已经这样做了,让我们来看看我们得到的直线:
在这里插入图片描述

根据这条直线,我们可以看出,面积略低于 2700 平方英尺的房屋被售出的概率为 100%:
在这里插入图片描述

而面积为2200 平方英尺的房子被卖出的几率预计为 0%:
在这里插入图片描述

据预测,面积2300 平方英尺的房屋售出的可能性约为 20%,如下:
在这里插入图片描述

好吧,到目前为止一切顺利。但如果我们的房子面积是 2800 平方英尺呢?

在这里插入图片描述

嗯…概率超过 100%是什么意思?这么大的房子,预测卖出的概率是 150%吗?

多少有点奇怪。那 2100 平方英尺的房子呢?
在这里插入图片描述

很明显,我们遇到了一个问题,因为面积为 2100 平方英尺的房屋的预测概率似乎是负数。这肯定是不合理的,也说明使用标准线性回归线存在问题。

4. 引入sigmoid函数

我们知道,概率的取值范围是从 0 到 1,我们不能超出这个范围。因此,我们需要找到一种方法,将预测输出限制在这个范围内。

为了解决这个问题,我们可以将我们的线性回归方程通过一个超酷的机器学习函数,称为sigmoid 函数。我们将 z 值(其中 z = β₀ + β₁size)输入该函数中,如下:
在这里插入图片描述

然后就会出现一个看起来很华丽的新方程,可以满足我们的概率限制。

我们可以用一种更数学化的方式来表示 sigmoid 函数:
在这里插入图片描述

如果我们将其绘制出来,就会发现 sigmoid 函数将直线挤压成了一条 s 形曲线,并将其取值限制在 0 和 1 之间。

在这里插入图片描述

5. 逻辑回归思想

通过上述分析,我们知道了如何修改线性回归方程,使其符合我们的输出约束条件,我们可以回到最初的问题。我们需要确定数据集的最佳曲线。为此,我们需要确定 β₀ 和 β₁ 的最佳值(因为这是预测概率方程中唯一会改变曲线形状的值)。

与线性回归类似,我们将利用代价函数和梯度下降算法来获取这些系数的合适值。但关键区别在于,我们不会使用线性回归中使用的 MSE成本函数。相反,我们将使用一种不同的成本函数,称为对数损失,我们将在下文中详细探讨。

假设我们使用梯度下降法和对数损失成本法(使用这些步骤)发现最优值为 β₀ = -120.6 和 β₁ = 0.051,那么我们的预测概率方程将是:
在这里插入图片描述
相应的最优曲线如下:

在这里插入图片描述

有了这条新曲线,我们就可以解决马克的问题了。通过观察我们可以发现,面积为 2400 平方英尺的房屋预测概率约为 78%。因此,我们可以告诉马克不用担心,因为看起来他的房子很有可能卖掉,如下所示:
在这里插入图片描述

我们可以通过开发分类算法来进一步改进我们的方法。分类算法通常用于机器学习,将数据分门别类。在我们的案例中,我们有两个类别:将会出售的房屋和不会出售的房屋。

为了开发分类算法,我们需要定义一个概率阈值。这个概率阈值将预测概率分为两类:"是,房子会卖掉 "和 “否,房子不会卖掉”。通常情况下,阈值为50%(或 0.5)。

如果房屋大小作为输入预测出概率高于 50%,则会被归类为 “会出售”,如果低于 50%,则会被归类为 “不会出售”。

在这里插入图片描述

就是这样。这就是我们如何使用逻辑回归来解决问题的方法。现在,让我们来了解一下我们用来寻找逻辑回归最优值的成本函数。

6. 成本损失函数

在线性回归中,成本损失取决于直线与数据点的偏离程度。而在逻辑回归中,成本函数取决于我们的预测与实际数据的偏离程度,因为我们处理的是概率问题。

如果我们在逻辑回归中使用 MSE 成本函数(就像在线性回归中一样),我们最终会得到一条非凸(花哨的术语,意为不太漂亮的曲线,不能有效地用于梯度优化)成本函数曲线,很难对其进行优化。
在这里插入图片描述

大家可能还记得我们关于梯度下降的讨论,优化如下所示的凸曲线(又称有明显最小点的曲线)要比优化非凸曲线容易得多。
在这里插入图片描述

为了实现凸成本函数曲线,我们使用了一种名为对数损失的成本函数。

为了分解对数损失成本函数,我们需要分别定义房屋实际售出(y=1)和未售出(y=0)时的成本。

如果 y = 1,而我们预测为 1(即售出的可能性为 100%),则不会受到惩罚。但是,如果我们预测的是 0(即没有售出的可能性为 0%),那么我们就会受到严重惩罚。
在这里插入图片描述

同样,如果 y = 0,而我们预测房子卖出的概率很高,那么我们应该受到重罚;如果我们预测房子卖出的概率很低,那么惩罚应该较轻。偏差越大,损失越大。
在这里插入图片描述

为了计算数据集中所有房屋的成本,我们可以将所有单个预测的成本平均化:
在这里插入图片描述

通过巧妙地改写这两个等式,我们可以将它们合二为一,从而得到对数损失成本函数。
在这里插入图片描述

这样做的原因是,这两个值中有一个总是零,所以只使用另一个。可视化如下:
在这里插入图片描述

到此,我们就大功告成了!现在,你已经拥有了解决逻辑回归问题所需的一切。

7. 总结

本文重点介绍了如何利用逻辑回归算法来求解机器学习中分类问题,并给出了详细的图例说明。

您学废了吗?

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

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

相关文章

探索人工智能和LLM对未来就业的影响

近年来,人工智能(AI)迅猛发展,引发了人们的兴奋,同时也引发了人们对就业未来的担忧。大型语言模型(LLM)就是最新的例子。这些强大的人工智能子集经过大量文本数据的训练,以理解和生成…

excel操作笔记

CTRLE ,快速填充 shiftctrl下箭头,选中一个单元个,按快捷键,可以选中所有列 ALT,选中需要求和的部分,按住ALT,就可以快速求和,列和行多选一列显示求和结果 引用,快捷键…

中药材图像识别:中医与深度学习的融合(目标检测)

亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 一、引…

STM32F1+HAL库+FreeTOTS学习2——STM32移植FreeRTOS

STM32F1HAL库FreeTOTS学习2——STM32移植FreeRTOS 获取FreeRTOS源码创建工程窥探源码移植 上期我们认识了FreeRTOS,对FreeRTOS有了个初步的认识,这一期我们来上手移植FreeRTOS到STM32上。 获取FreeRTOS源码 进入官网:https://www.freertos.o…

7.优化算法之分治-快排归并

0.分治 分而治之 1.颜色分类 75. 颜色分类 - 力扣(LeetCode) 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数…

weiyang**3.控制台01

1. 搭建单群组FISCO BCOS联盟链 使用开发部署工具 build_chain.sh脚本在本地搭建一条4 节点的FISCO BCOS链,以Ubuntu 22.04 64bit系统为例操作。 1.1 安装依赖 sudo apt install -y openssl curl 1.2 创建操作目录, 下载安装脚本 ## 创建操作目录 cd ~ &&a…

java基于ssm+jsp 个人交友网站

1前台首页功能模块 个人交友网站,在系统首页可以查看首页、交友信息、线下活动、系统公告、论坛信息、我的、跳转到后台、客服等内容,如图1所示。 图1系统功能界面图 用户注册,在用户注册页面可以填写用户账号、密码、用户姓名、年龄等信息进…

[JS]BOM操作

介绍 BOM(Browser Object Model)是浏览器对象模型 window对象是一个全局对象, 也是JS中的顶级对象通过var定义在全局作用域中的变量和函数都会变成window对象的属性和方法window对象下的属性和方法调用时一般省略window 间歇函数 定时器 定时器是间歇函数的一种, 可以每个每…

java基于ssm+jsp 高校信息资源共享平台

1前台首页功能模块 高校信息资源共享平台,在系统首页可以查看首页、课程信息、教学资源、新闻资讯、我的、跳转到后台等内容,如图1所示。 图1前台首页功能界面图 学生信息登录、学生信息注册,在注册页面可以填写账号、姓名、手机、邮箱、身…

C#基于SkiaSharp实现印章管理(3)

本系列第一篇文章中创建的基本框架限定了印章形状为矩形,但常用的印章有方形、圆形等多种形状,本文调整程序以支持定义并显示矩形、圆角矩形、圆形、椭圆等4种形式的印章背景形状。   定义印章背景形状枚举类型,矩形、圆形、椭圆相关的尺寸…

【人工智能】—葡萄牙酒店预订信息多维度分析|预测是否取消预定算法模型大乱斗

引言 在当今数字化时代,数据驱动的决策在各个行业中变得越来越重要。酒店业,作为旅游和休闲服务的核心部分,正面临前所未有的机遇和挑战。随着在线预订平台的兴起,客户行为数据的积累为酒店提供了洞察消费者需求和优化运营策略的…

存储管理(三):分区表

什么是分区表 假设存在表t: CREATETABLE t (ftimedatetime NOT NULL,c int(11) DEFAULT NULL,KEY (ftime) )ENGINEInnoDB DEFAULT CHARSETlatin1 PARTITION BY RANGE (YEAR(ftime)) (PARTITION p_2017 VALUES LESS THAN (2017) ENGINE InnoDB,PARTITION p_2018 VA…

【Python】已解决:ModuleNotFoundError: No module named ‘sklearn‘

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:ModuleNotFoundError: No module named ‘sklearn‘ 一、分析问题背景 在进行机器学习项目时,Scikit-Learn(简称sklearn)是一…

MySQL的limit关键字和聚合函数讲解

目录 一、MySQL数据库介绍二、MySQL聚合函数三、MySQL数据排序分组四、MySQL的limit关键字 一、MySQL数据库介绍 MySQL是一种广泛使用的开源关系型数据库管理系统,由瑞典MySQL AB公司开发,后被Sun Microsystems收购,最终成为Oracle公司的一部…

Consul入门笔记

简介 Consul,HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更一站式,内置服务注册与发现框架、分布一致性协议实现、健康检查、K/V存储、多数据中心方案&…

地图初始化-多视图几何基础

在ORB-SLAM2中初始化和使用的传感器类型有关,其中单目相机模式初始化相对复杂,需要运行一段时间才能成功初始化。而双目相机、 RGB-D相机模式下比较简单,一般从第一帧开始就可以完成初始化。 为什么不同传感器类型初始化差别这么大呢&#x…

springboot宠物医院管理系统-计算机毕业设计源码07221

目 录 1 绪论 1.1 选题背景和意义 1.2国内外研究现状 1.3论文结构与章节安排 2 宠物医院管理系统系统分析 2.1 可行性分析 2.1.1技术可行性分析 2.1.2 操作可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分…

metasfresh开源ERP系统Windows开发环境配置参考

目录 概述 开发环境 配置过程 后端启动 前端启动 登陆系统 其他 概述 Compiere闭源之后衍生出了Admpiere等若干开源的产品,metasfresh就是其中之一,metasfresh截至发稿时在GitHub上已有64000多次的修改提交,而且仍在维护中&#xff0…

vue3-cropperjs图片裁剪工具-用户上传图片截取-(含预览视频)

效果图 上传图片弹窗预览 对于这个上传图片样式可以参考 官方原代码 官网传送入口 Upload 上传 | Element Plus (element-plus.org) <template><el-uploadclass"upload-demo"dragaction"https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6…

使用label-studio对OCR数据进行预标注

导读 label-studio作为一款数据标注工具相信大家都不陌生&#xff0c;对于需要进行web数据标注协同来说应该是必备工具了&#xff0c;标注的数据类型很全涉及AI的各个任务(图像、语音、NLP、视频等)&#xff0c;还支持自定义涉及模版。 然而&#xff0c;我们在标注数据的过程…