数据可视化期末考试(logistic回归)

目录

1、Logistic回归

2、梯度上升算法


1、Logistic回归

假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作为回归,如下图所示:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

Logistic回归是分类方法,它利用的是Sigmoid函数阈值在[0,1]这个特性。Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。其实,Logistic本质上是一个基于条件概率的判别模型(Discriminative Model)。

Sigmoid函数是逻辑回归的核心,它可以将任何实数映射到 (0,1)之间。 在逻辑回归中,Sigmoid函数将线性回归的输出转化为概率形式,使得我们可以对分类问题做出概率预测。

所以要想了解Logistic回归,我们必须先看一看Sigmoid函数 ,我们也可以称它为Logistic函数。它的公式如下:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

整合成一个公式,就变成了如下公式:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

下面这张图片,为我们展示了Sigmoid函数的样子。

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

z是一个矩阵,θ是参数列向量(要求解的),x是样本列向量(给定的数据集)。θ^T表示θ的转置。g(z)函数实现了任意实数到[0,1]的映射,这样我们的数据集([x0,x1,...,xn]),不管是大于1或者小于0,都可以映射到[0,1]区间进行分类。hθ(x)给出了输出为1的概率。比如当hθ(x)=0.7,那么说明有70%的概率输出为1。输出为0的概率是输出为1的补集,也就是30%。

如果我们有合适的参数列向量θ([θ0,θ1,...θn]^T),以及样本列向量x([x0,x1,...,xn]),那么我们对样本x分类就可以通过上述公式计算出一个概率,如果这个概率大于0.5,我们就可以说样本是正样本,否则样本是负样本。

举个例子,对于"垃圾邮件判别问题",对于给定的邮件(样本),我们定义非垃圾邮件为正类,垃圾邮件为负类。我们通过计算出的概率值即可判定邮件是否是垃圾邮件。

那么问题来了!如何得到合适的参数向量θ?

根据sigmoid函数的特性,我们可以做出如下的假设:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

式即为在已知样本x和参数θ的情况下,样本x属性正样本(y=1)和负样本(y=0)的条件概率。理想状态下,根据上述公式,求出各个点的概率均为1,也就是完全分类都正确。但是考虑到实际情况,样本点的概率越接近于1,其分类效果越好。比如一个样本属于正样本的概率为0.51,那么我们就可以说明这个样本属于正样本。另一个样本属于正样本的概率为0.99,那么我们也可以说明这个样本属于正样本。但是显然,第二个样本概率更高,更具说服力。我们可以把上述两个概率公式合二为一:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

合并出来的Loss,我们称之为损失函数(Loss Function)。当y等于1时,(1-y)项(第二项)为0;当y等于0时,y项(第一项)为0。为s了简化问题,我们对整个表达式求对数,(将指数问题对数化是处理数学问题常见的方法):此公式是重点(重点理解)

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

这个损失函数,是对于一个样本而言的。给定一个样本,我们就可以通过这个损失函数求出,样本所属类别的概率,而这个概率越大越好,所以也就是求解这个损失函数的最大值。既然概率出来了,那么最大似然估计也该出场了。假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积,便可得到如下公式:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

其中,m为样本的总数,y(i)表示第i个样本的类别,x(i)表示第i个样本,需要注意的是θ是多维向量,x(i)也是多维向量。

综上所述,满足J(θ)的最大的θ值即是我们需要求解的模型。

怎么求解使J(θ)最大的θ值呢?因为是求最大值,所以我们需要使用梯度上升算法。如果面对的问题是求解使J(θ)最小的θ值,那么我们就需要使用梯度下降算法。面对我们这个问题,如果使J(θ) := -J(θ),那么问题就从求极大值转换成求极小值了,使用的算法就从梯度上升算法变成了梯度下降算法,它们的思想都是相同的,学会其一,就也会了另一个。本文使用梯度上升算法进行求解。

2、梯度上升算法

梯度上升:梯度上升是一种迭代算法,用于寻找函数的局部最大值或全局最大值。 它的核心思想是 沿着函数梯度的正方向进行迭代更新 ,以逐步接近最大值点。 在每一次迭代中,根据当前位置的梯度方向来更新参数或变量值,使目标函数值增大。

说了半天,梯度上升算法又是啥?J(θ)太复杂,我们先看个简单的求极大值的例子。一个看了就会想到高中生活的函数:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

来吧,做高中题。这个函数的极值怎么求?显然这个函数开口向下,存在极大值,它的函数图像为:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

求极值,先求函数的导数:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

令导数为0,可求出x=2即取得函数f(x)的极大值。极大值等于f(2)=4

但是真实环境中的函数不会像上面这么简单,就算求出了函数的导数,也很难精确计算出函数的极值。此时我们就可以用迭代的方法来做。就像爬坡一样,一点一点逼近极值。这种寻找最佳拟合参数的方法,就是最优化算法。爬坡这个动作用数学公式表达即为:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

其中,α为步长,也就是学习速率,控制更新的幅度。效果如下图所示:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

比如从(0,0)开始,迭代路径就是1->2->3->4->...->n,直到求出的x为函数极大值的近似值,停止迭代。

结果很显然,已经非常接近我们的真实极值2了。这一过程,就是梯度上升算法。那么同理,J(θ)这个函数的极值,也可以这么求解。公式可以这么写:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

由上小节可知J(θ)为:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

sigmoid函数为:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

那么,现在我只要求出J(θ)的偏导,就可以利用梯度上升算法,求解J(θ)的极大值了。

那么现在开始求解J(θ)对θ的偏导,求解如下:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

其中:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

再由:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

可得:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

接下来,就剩下第三部分:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

综上所述:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

因此,梯度上升迭代公式为:

机器学习实战教程(六):Logistic回归基础篇之梯度上升算法

知道了,梯度上升迭代公式,我们就可以自己编写代码,计算最佳拟合参数了。

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

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

相关文章

用FFmpeg合并音频和视频

使用FFmpeg合并音频和视频是一个相对直接的过程。可以通过以下一些基本的步骤和命令示例完成这个任务: 安装FFmpeg:首先,确保你的系统中已经安装了FFmpeg。你可以从[FFmpeg官网](Download FFmpeg)下载并安装它。 准备素材:确保你…

压铸工艺介绍

1.压铸的主要特点 1.压铸是让有色金属熔融,并在加压的情况下让其流入模具中。由于使用模具,所以适合进行大量生产。不同于其他铸造方式,压铸需要加压,所以具有尺寸精度优秀的特点。此外,由于并非使用砂型而是采用模具…

如何给WPS、Word、PPT等办公三件套添加收费字体---方正仿宋GBK

1.先下载需要的字体。 下载字体的网站比较多,基本上都是免费的。随便在网上搜索一个就可以了,下面是下载的链接。 方正仿宋GBK字体免费下载和在线预览-字体天下 ​www.fonts.net.cn/font-31602268591.html 注意:切记不要商用,以免…

基于weixin小程序农场驿站系统的设计

管理员账户功能包括:系统首页,个人中心,农场资讯管理,用户管理,卖家管理,用户分享管理,分享类型管理,商品信息管理,商品类型管理 开发系统:Windows 架构模式&…

高频科技亮相SEMl-e2024第六届深圳国际半导体展,以超纯工艺推动行业发展

6月26-28日,SEMl-e2024第六届深圳国际半导体展在深圳国际会展中心(宝安新馆)隆重举办。本次展会以【“芯”中有“算”智享未来】为主题,汇聚800多家展商,集中展示了集成电路、电子元器件、第三代半导体及产业链材料和设备为一体的半导体产业链,搭建了供需精准对接、探索行业新发…

【多线程】如何解决线程安全问题?

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. synchronized 关键字1.1 锁是什么1.2 如何加锁1.3 synchronized 修饰方法1) 修饰普通成员方法2) 修饰静态…

web前端——css(一篇教会网页制作)

目录 一、基本语法 1.行内样式表 2.内嵌样式表 3.外部样式表 二、选择器 1.标签选择器 2.类选择器 3.id 选择器 4.通配选择器 三、常见修饰 1.文本 2.背景 3.列表 4.伪类 5.透明度 6.块级、行级、行级块标签 7.div 和 span 四、盒子模型(重点&…

Python学习打卡:day15

day15 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day15110、数据分析案例步骤 1 —— 文件读取data_define_108.pyfile_define_108.py 111、数据分析案例步骤二——数据计算112、数据分析案例步骤…

基于LMS自适应滤波的窄带信号宽带噪声去除(MATLAB R2021B)

数十年的研究极大的发展了自适应滤波理论,自适应滤波理论已经成为信号处理领域研究的热点之一。从理论上讲,自适应滤波问题没有唯一解。为了得到自适应滤波器及其应用系统,可以根据不同的优化准则推导出许多不同的自适应理论。目前该理论主要…

【C语言】字符/字符串+内存函数

目录 Ⅰ、字符函数和字符串函数 1 .strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 11.字符函数 12. 字符转换函数 Ⅱ、内存函数 1 .memcpy 2.memmove 3.memcmp 4.memset Ⅰ、字符函数和字符串函数 1 .strlen 函数原型&…

Java热门技术点总结:Lambda表达式与Stream API

第一部分:Lambda表达式 1. 简介 Lambda表达式是Java 8引入的一个非常重要的特性,它提供了一种简洁、灵活的函数式编程方式。Lambda表达式允许我们将函数作为参数传递,极大的简化了代码的编写。 2. 基本语法 Lambda表达式的基本语法如下&a…

聚类模型的算法性能评价

一、概述 作为机器学习领域的重要内容之一,聚类模型在许多方面能够发挥举足轻重的作用。所谓聚类,就是通过一定的技术方法将一堆数据样本依照其特性划分为不同的簇类,使得同一个簇内的样本有着更相近的属性。依不同的实现策略,聚类…

目标检测之YoloV1

一、预测阶段(前向推断) 在预测阶段Yolo就相当于一个黑箱子,输入的是448*448*3的图像,输出是7*7*30的张量,包含了所有预测框的坐标、置信度和类别 为什么是7*7*30呢? --将输入图像划分成s*s个grid cell&a…

stm32 No traget connected/debug识别不到串口的问题

关于stm32串口识别不到,第一步先确定是否线接错(stlink与stm32接口对应),如果确认接线没有问题的话,可以使用以下方法,成功率较高。 首先将stlink的boot0置1,就是把跳线帽换到高电平这一侧&…

专业技术!最新氧化物异质结纳米制备技术

网盘 https://pan.baidu.com/s/1vjO2yLxm638YpnqDQmX7-g?pwd3at5 MOF衍生的B_A_B结构氧化物异质结及其制备方法和应用.pdf 二硫化钼-硫化镉纳米复合材料及其制备方法和应用.pdf 具有异质界面的耐辐照复合薄膜及其制备方法与应用.pdf 基于异质结双界面层纳米材料的复合介电薄膜…

基于单片机和LabVIEW 的远程矿井水位监控系统设计

摘要 : 针 对 现 有 矿 井 水 位 监 控 系 统 存 在 结 构 复 杂 和 不 能 远 程 监 控 的 问 题 , 设计了基于单片机和LabVIEW 的远程矿井水位监控系统 , 详…

获取当前操作系统的名称platform.system()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 获取当前操作系统的名称 platform.system() [太阳]选择题 在Python中,platform.system() 函数被用来获取什么信息? import platform print("【执行】platform.s…

Python数据分析第二课:conda的基础命令

Python数据分析第二课:conda的基础命令 1.conda是什么? conda是一个开源的包管理系统,可以帮助我们进行管理多个不同版本的软件包,还可以帮助我们建立虚拟环境,以便对不同的项目进行隔离。 简单来说,conda是一个软…

充电站,正在杀死加油站

最近,深圳公布了一组数据,深圳的超级充电站数量已超过传统加油站数量,充电枪数量也已超过加油枪数量。 从全国范围看,加油站关停的速度在加快。 充电站正在杀死加油站。 加油站,未来何去何从? 01. 减少 我…

概率论论文(关于“到课率”的贝叶斯推理应用)

概率论论文(关于“到课率”的贝叶斯推理应用) 全条件概率公式和贝叶斯公式趣味识 思考1: (引自贝叶斯公式及朴素贝叶斯分类算法应用初探) “狼来了”的故事想必大家都知道,小孩子第三次对村民说狼来了的时候,村民们没有相信他的话&#xff0…