一文弄懂逻辑回归算法

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. 总结

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

您学废了吗?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker pull 镜像的时候遇到Pulling fs layer问题

最近遇到一个很奇怪的问题,docker pull 镜像的时候,总是出现Pulling fs layer问题,导致镜像拉取不成功,以前是安装好docker,正常拉取镜像都是没什么问题的,在这里记录一下这个问题的解决方法,当然,可能并不通用。 1、进入阿里云容器服务 地址:https://cr.console.aliy…

宝藏网站推荐,这些网站不可不知

在如今网络信息爆炸的时代,想要在众多网站中查找筛选一些好用的宝藏网站不是一件容易的事情。下面小编就来和大家分享几个值得推荐的宝藏网站,可以极大的提高大家上网效率,涵盖办公,学习,生活各个方面。 一、b站 b站…

IDEA中导入Maven项目

相关内容: Maven的安装与配置 在IDEA中配置Maven环境 在IDEA中创建Maven项目 IDEA中Maven配置依赖和排除依赖 IDEA中导入Maven项目 方式1:使用Maven面板,快速导入项目 打开IDEA,选择右侧Maven面板,点击 号&…

基于DSMM数据安全能力建设方案的落地性评估指标

写在前面: 随着信息技术的迅猛发展,数据已成为企业最宝贵的资产之一。然而,数据安全问题也随之而来,如何确保数据的安全性、完整性和可用性,已成为企业面临的重要挑战。DSMM(数据安全能力成熟度模型&#x…

路径规划 | 基于蜣螂优化算法的栅格地图机器人路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 路径规划 | 基于蜣螂优化算法的栅格地图机器人路径规划(Matlab) 1.利用蜣螂算法DBO优化栅格地图机器人路径规划,效果如图所示,包括迭代曲线图、栅格地图等等&#xff5e…

知识不成体系?这篇Mysql数据库将成为你的解忧杂货店!(Mysql用户管理)

欢迎来到一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426qq.com 。发布文章的风格因专栏而异,均自成体系,不足…

【鸿蒙学习笔记】尺寸设置

官方文档:尺寸设置 目录标题 width:设置组件自身的宽度,缺省时自适应height:设置组件自身的高度,缺省时自适应size:设置高宽尺寸。margin:设置组件的外边距padding:设置组件的内边距…

LeetCode题练习与总结:环形链表Ⅱ--142

一、题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测…

【鸿蒙学习笔记】位置设置

官方文档:位置设置 目录标题 align:子元素的对齐方式direction:官方文档没懂,看图理解吧 align:子元素的对齐方式 Stack() {Text(TopStart)}.width(90%).height(50).backgroundColor(0xFFE4C4).align(Alignment.TopS…

数据分析的线上云端数据库搭建及Excel和Tableau连接

数据分析的线上云端数据库搭建及Excel和Tableau连接 SQL基础知识 线上SQL训练: SQlZOO: https://www.sqlzoo.net/wiki/SQL_Tutorial 牛客网SQL真题:https://www.nowcoder.com/ta/sql select,from,where, order by, limit, group by, having, substr(),…

windows 本地ES 7.11.0 版本集群搭建

1.先下载JDK ,建议下载JDK11. 2.下载ES Windows安装包 7.11.0下载 3.下载完成后,在本地解压三份,分别取名 node1,node2,node3 4.若启动一直报端口占用,这修改 每个文件夹下bin/elasticsearch.bat文件,没有则跳过 在…

MySQL高级-MVCC- readview介绍

文章目录 1、介绍2、ReadView中包含了四个核心字段:3、版本链数据的访问规则:4、不同的隔离级别,生成ReadView的时机不同: 1、介绍 ReadView(读视图)是 快照读 SQL执行时MVCC提取数据的依据,记录…

基于bootstrap的12种登录注册页面模板

基于bootstrap的12种登录注册页面模板,分三种类型,默认简单的登录和注册,带背景图片的登录和注册,支持弹窗的登录和注册页面html下载。 微信扫码下载

[Redis]主从模式

启动主从复制 由于我们只有一台机器,所以我们只能在机器上开多个redis程序来演示不同的机器 因为一个端口号只能被一个进程绑定,所以我们需要修改配置,绑定不同的端口号,并且还要修改工作目录(数据持久化的位置&#…

第二天:ALOAM前端讲解【第1部分】

第二天:ALOAM前端讲解 目标: 熟悉 ALOAM基本原理与代码框架,快速熟悉代码ALOAM效果 内容: LOAM论文论文精讲整体代码框架介绍前端特征提取,点到线、点到面ICP代码讲解ALOAM精讲 一、ALOAM整体架构 LOAM主要包含两个模块,一个是Lidar Odometry,即使用激光雷达做里程计计…

Qt项目天气预报(8) - 绘制温度曲线 + 回车搜索(最终篇)

全部内容在专栏: Qt项目 天气预报_mx_jun的博客-CSDN博客 目录 绘制温度曲线 事件过滤器在子控件上绘图 子控件下载事件过滤器 事件过滤器进行绘图 - eventFilter 画初步高温曲线 画初步低温曲线 效果演示 画低温曲线 画高温曲线 效果演示 按下回车搜索: …

ETAS工具导入DEXT生成Dcm及Dem模块(二)

文章目录 前言DcmDcmDsdDcmDslDcmDspDcmPageBufferCfgDem报错解决总结前言 之前一篇文章介绍了导入DEXT之后在cfggen之前的更改,cfggen完成之后,就可以生成dcm,dem的配置了,但生成完配置后,如果直接生成BSW代码,会报错。本文介绍在cfggen完成后,生成BSW代码前的修改 Dc…

Go环境安装---附带每一步截图

Windows环境 Go安装包下载 下载后直接安装步骤按照即可。 测试 winR 输入cmd 在命令行输出go version可以看到自己的版本。 go env 查看环境变量 在桌面创建hello.go的文件 编写代码。注意,编码必修是UTF-8 在命令行输入路径刚刚代码所在的路径&#x…

【从零开始学架构 架构基础】三 架构设计的复杂度来源:高可用复杂度来源

架构设计的复杂度来源其实就是架构设计要解决的问题,主要有如下几个:高性能、高可用、可扩展、低成本、安全、规模。复杂度的关键,就是新旧技术之间不是完全的替代关系,有交叉,有各自的特点,所以才需要具体…

tomcat8.5在windows下运行出现日志中文乱码

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…