【机器学习基础】对数几率回归(logistic回归)

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
【机器学习基础】一元线性回归(适合初学者的保姆级文章)
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
💡本期内容:Logistic回归和对数几率回归是同一个模型,是统计学习中的经典分类方法,属于对数线性模型。上一节讨论了如何使用线性模型进行回归学习,但若要做的是分类任务该怎么办?答案蕴涵在线性回归广义线性模型(假设函数)中:只需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。超级基础的文章,赶紧收藏学习吧!!!


文章目录

  • 1 什么是对数几率回归
  • 2 假设函数
  • 3 决策边界
  • 4 代价函数
    • 4.1 与线性回归模型的区别
    • 4.2 重新定义代价函数
  • 5 如何处理多分类问题
    • 5.1 一对多法(one-versus-rest,简称OVR SVMs)
    • 5.2 一对一的投票策略(One-vs-one)


1 什么是对数几率回归

对数几率回归,也称为逻辑回归,是一种广义线性模型。在逻辑回归中,通过使用sigmoid函数,将线性回归的输出映射到0和1之间,表示样本属于某一类的概率。所以它属于分类模型

逻辑回归模型的训练通常通过最大化似然函数来完成,常用的解决方法是使用梯度下降算法进行模型优化,通过迭代调整模型参数,使得模型的预测结果逐渐接近实际标签。

逻辑回归可以表示为一个关于θ的函数hθ(x),即hθ(x) = P(y=1|x;θ),表示给定特征x和参数θ的条件下,样本属于正例的概率。

由于它属于一个分类模型,所以它的输出应该具有分类的性质,于是,这里规定其输出永远在0,1之间。
在这里插入图片描述


2 假设函数

考虑二分类任务,其输出标记 y∈{0, 1},而线性回归模型产生的预测值 h θ ( x ) h_{\theta }(x) hθ(x)是实值,于是,我们需将实值 z z z转换为 0/1值最理想的是“单位阶跃函数”(unit-step function)

在这里插入图片描述

但阶跃函数并不连续,于是我们希望找到能在一定程度上近似单位阶跃函数的“替代函数”(surrogate function),并希望它单调可微对数几率函数(logistic function)正是这样一个常用的替代函数:
在这里插入图片描述

那么对数几率回归的假设函数应该将输出控制到0~1之间,于是就有了大名鼎鼎的sigmoid函数
在这里插入图片描述

  • 对于假设函数在对数几率回归的解释

h θ ( x ) h_{\theta }(x) hθ(x)的作用是:对于给定的输入变量,根据选择的参数计算输出变量=1的可能性。即 h θ ( x ) h_{\theta }(x) hθ(x)带有一定的概率含义。

例如,对于给定的x,通过已知的参数计算出 h θ = 0.7 h_{\theta }=0.7 hθ=0.7,则表示有70%的概率y为正例.

若将 y y y视为样本 x x x作为正例的可能性,则 1 − y 1-y 1y 是其反例可能性,两者的比值 y 1 − y \frac{y}{1-y} 1yy称为"几率" (odds) ,反映了 x x x作为正例的相对可能性. 对几率取对数则得到"对数几率" (log odds ,亦称 logit)
在这里插入图片描述

由此可看出,式(3.18) 实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为"对数几率回归" (logistic regression ,亦称 logit regression) .


3 决策边界

在对数几率回归中,我们预测:

当hθ(x)>=0.5
时,预测y=1.

当hθ(x)<0.5
时,预测y=0.
在这里插入图片描述

根据上面绘制的图像,我们知道:

当z>=0时,g(z)>=0.5

当z<0时,g(z)<0.5

  • 举个例子

当参数 θ \theta θ是向量 [ − 3 , 1 , 1 ] [-3,1,1] [3,1,1]。 则当 − 3 + x 1 + x 2 = 0 -3 +x_1+x_2= 0 3+x1+x2=0时,模型将预测 y=1。我们可以绘制这条线便是我们模型的分界线,将预测为 1 的区域和预测为 0 的区域分隔开.
在这里插入图片描述
换句话说,大于这条线的部分预测y=0,小于这条线的部分预测y=0. 这条线就叫做决策边界


4 代价函数

4.1 与线性回归模型的区别

对于线性回归,我们知道它的代价函数为 J ( θ ) = 1 2 m Σ i = 1 m ( h θ x ( i ) − y ( i ) ) 2 J(\theta )=\frac{1}{2m}\Sigma _{i=1}^{m}(h_{\theta }x^{(i)}-y^{(i)})^{2} J(θ)=2m1Σi=1m(hθx(i)y(i))2, 我们可以对其进行梯度下降求最小值。其中可以用梯度下降最根本的原因在于它是一个凸函数,如下图所示
在这里插入图片描述
在逻辑回归中,如果还用和线性回归一样的代价函数的话,是求不到全局的最小值的,只能求到局部的最小值。这是因为,逻辑回归的假设函数变成了 h θ ( x ) = g ( θ T x ) = g ( z ) = 1 1 + e − z = 1 1 + e − θ T x h_{\theta }(x)=g(\theta ^{T}x)=g(z)=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-\theta ^{T}x}} hθ(x)=g(θTx)=g(z)=1+ez1=1+eθTx1,将其带入上面的代价函数,可得到它的图像为:
在这里插入图片描述
由此我们知道,我们需要重新定义逻辑回归的代价函数。且这个代价函数一定是一个凸函数,否则不方便使用梯度下降求最小值

4.2 重新定义代价函数

这里我们定义新的代价函数为:
J ( θ ) = 1 m Σ i = 1 m c o s t ( h θ ( x ( i ) ) , y ( i ) ) J(\theta )=\frac{1}{m}\Sigma _{i=1}^{m}cost(h_{\theta }(x^{(i)}),y^{(i)}) J(θ)=m1Σi=1mcost(hθ(x(i)),y(i))

在这里插入图片描述
这样分条件构建代价函数,可以使得当实际的 𝑦 = 1 且ℎ𝜃(𝑥)也为 1 时误差为 0, 当 𝑦 = 1 但ℎ𝜃(𝑥)不为 1 时误差随着ℎ𝜃(𝑥)变小而变大;当实际的 𝑦 = 0 且ℎ𝜃(𝑥)也为 0 时 代价为 0,当𝑦 = 0 但ℎ𝜃(𝑥)不为 0 时误差随着 ℎ𝜃(𝑥)的变大而变大。
由此可以保证它的输出用于分类

对其进行化简:
在这里插入图片描述

在得到这样一个代价函数以后,我们便可以用梯度下降法来求得代价函数取最小值时的参数了。方法和前面的线性回归求梯度下降差不多。
在这里插入图片描述


5 如何处理多分类问题

现实生活中,我们遇到的问题往往是很多类别的东西需要分类,所以如何利用二分类的模型解决多分类问题呢?
在这里插入图片描述

5.1 一对多法(one-versus-rest,简称OVR SVMs)

训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。

假如我有四类要划分(也就是4个Label),他们是A、B、C、D。
于是我在抽取训练集的时候,分别抽取

  1. A所对应的向量作为正集,B,C,D所对应的向量作为负集;
  2. B所对应的向量作为正集,A,C,D所对应的向量作为负集;
  3. C所对应的向量作为正集,A,B,D所对应的向量作为负集;
  4. D所对应的向量作为正集,A,B,C所对应的向量作为负集;

在这里插入图片描述

使用这四个训练集分别进行训练,然后的得到四个训练结果文件。在测试的时候,把对应的测试向量分别利用这四个训练结果文件进行测试。最后每个测试都有一个结果f1(x),f2(x),f3(x),f4(x)。
于是最终的结果便是这四个值中最大的一个作为分类结果

  • 评价

这种方法有种缺陷,因为训练集是1:M,这种情况下存在biased.因而不是很实用可以在抽取数据集的时候,从完整的负集中再抽取三分之一作为训练负集

5.2 一对一的投票策略(One-vs-one)

分类器的选择

  • 将A、 B、C、 D四类样本两类两类地组成训练集, 即(A,B)、(A.C)、(A,D)、(B,C)、(B,D)、(C,D), 得到6个(对于n类问题,为n(n-1)/2个)SVM二分器。
  • 在测试的时候,把测试样本又依次送入这6个二分类器, 采取投票形式, 最后得到一组结果。

投票是以如下方式进行的

  • 初始化:vote(A)= vote(B)= vote( C )= vote(D)=0。

  • 投票过程
    (1)如果使用训练集(A,B)得到的分类器将一个测试样本判定为A类,则vote(A)=vote(A)+1 ,否则vote(B)=vote(B)+ 1;
    (2)如果使用(A,C)训练的分类器将又判定为A类,则vote(A)=vote(A)+1, 否则vote( C )=vote( C )+1;
    (3)… ;
    (4)如果使用(C,D)训练的分类器将又判定为C类,则vote( C )=vote( C )+ 1 , 否则vote(D)=vote(D)+ 1。
    在这里插入图片描述

  • 最终判决
    Max(vote(A), vote(B), vote( C ), vote(D))
    如有两个以上的最大值,则一般可简单地取第一个最大值所对应的类

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

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

相关文章

Java学习之路 —— 多线程

文章目录 1. 线程创建方式1.1 继承Thread1.2 声明一个实现Runnable接口的类1.3 利用Callable接口、FutureTask类来实现 2. 线程同步2.1 同步代码块2.2 同步方法2.3 Lock锁 3. 线程同步4. 线程池 1. 线程创建方式 1.1 继承Thread 定义子类&#xff0c;继承Thread&#xff0c;创…

系列一、请谈谈你对JVM的理解?Java8的虚拟机有什么更新?

一、请谈谈你对JVM的理解&#xff1f;Java8的虚拟机有什么更新&#xff1f; JVM是Java虚拟机的意思。它是建立在操作系统之上的&#xff0c;由类加载器子系统、本地方法栈、Java栈、程序计数器、方法区、堆、本地方法库、本地方法接口、执行引擎组成。 &#xff08;1&#xff0…

Python系列:如何提高python程序代码的健壮性

前言 在编程的时候,我们难免会遇到一些不可靠的情况,比如网络请求失败,数据库连接超时等等。这些不确定性会让我们的程序容易出现各种错误和异常。那么如何来增加程序的容错性和健壮性呢? 可能大多数人会想到使用try except来进行异常捕捉进行失败重试(Retry)。虽然try-esc…

使用重建大师进行重建时,为什么引擎信息中显示只有一台主机能运行?

答&#xff1a;停止的引擎可以右键开始引擎&#xff0c;红字的可以看一下提示哪个文件夹没有权限&#xff0c;调整一下路径。由于截图不全&#xff0c;目前可以判断的就是以上解决办法。

音视频转换软件Permute mac中文板特点介绍

Permute mac是一款Mac平台上的媒体格式转换软件&#xff0c;由Chaotic Software开发。它可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式&#xff0c;并提供了一些常用工具以便于用户进行编辑和处理。 Permute mac软件特点 - 支持大量格式&#xff1a;支持几乎所…

Postman启动问题:Could not open Postman

Postman启动问题&#xff1a;Could not open Postman 状态&#xff0c;在单击Postman之后一直在转圈圈&#xff0c;无法正常启动。 细心的朋友会发现&#xff0c;右下角 会经常出现防火墙关闭等提示信息&#xff0c;表示该程序&#xff0c;在向外链接。 Error Could not open…

仅需三行代码! C# 快速实现PDF转PPT

一般在会议、教学或培训活动中&#xff0c;我们都会选择PPT文档来进行内容展示。与PDF文档相比&#xff0c;PPT文档具有较强的可编辑性&#xff0c;可以随时增删元素&#xff0c;并且还可以设置丰富多样的动画效果来吸引观众注意。那么如何通过C#将PDF文档转为PPT文档呢&#x…

射频与微波综合测试仪-4958手持式微波综合测试仪

4958 微波综合测试仪 频率范围&#xff1a;1MHz&#xff5e;20GHz 4958手持式微波综合测试仪测量频率范围可达1MHz~20GHz&#xff0c;集电缆和天线驻波比测试、不连续点故障定位测试、插入损耗和增益测试、频谱分析、功率测量等多种功能于一体&#xff0c;携带方便&…

Spring Boot中使用MongoDB完成数据存储

我们在开发中用到的数据存储工具有许多种&#xff0c;我们常见的数据存储工具包括&#xff1a; 关系性数据库&#xff1a;使用表格来存储数据&#xff0c;支持事务和索引。&#xff08;如&#xff1a;MySQL&#xff0c;Oracle&#xff0c;SQL Server等&#xff09;。NoSQL数据…

【强化学习】时间循环最优决策:原理与Python实战

Python 如何在时间循环里最优决策&#xff1f;时间旅行和平行宇宙时间旅行引发的悖论强化学习策略梯度算法代码案例代码推荐阅读理论完备&#xff1a;实战性强&#xff1a;配套丰富&#xff1a; 如何在时间循环里最优决策&#xff1f; 时间循环是一类热门的影视题材&#xff0…

电源线虚接,导致信号线发烫

音频板的信号是经过隔直电容接到音频板的。

信创环境下高级威胁攻击层出不穷,信息化负责人该如何增强对抗与防御能力?

11月15日&#xff0c;以“加快推进智慧校园建设 赋能为党育才为党献策”为主题的2023年华东地区党校&#xff08;行政学院&#xff09;信息化和图书馆工作高质量发展专题研讨班顺利举办。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席活动。 厦门服云信息科技有限公司…

【技术分享】EIGRP stub实验

【赠送】IT技术视频教程&#xff0c;白拿不谢&#xff01;思科、华为、红帽、数据库、云计算等等https://xmws-it.blog.csdn.net/article/details/117297837?spm1001.2014.3001.5502【微/信/公/众/号&#xff1a;厦门微思网络】 拓扑图&#xff1a; R1配置&#xff1a; route…

Android源码分析 - Service启动流程

作者&#xff1a;dreamgyf 这次我们就来讲讲四大组件之一的Service是如何启动和绑定的 流程图 在查阅资料的过程中&#xff0c;我发现有些博主会将梳理好的流程图贴在开头&#xff0c;我觉得这样有助于从宏观上去理解源码的整个流程和设计理念&#xff0c;所以以后的文章我都…

【23真题】难!985难度第一梯队!

今天分享的是23年华南理工大学811的信号与系统试题及解析 本套试卷难度分析&#xff1a;22年华南理工大学811考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;本套试题难度中等偏上&#xff0c;只有十道大题&#xff0c;考察大家的综合…

袭击大型银行在美子公司的勒索元凶—LockBit,「诺亚」实战出击主动防御

“让勒索软件再次伟大” 2022年 最活跃猖獗 的勒索软件 ——LockBit 已在全球范围内造成严重破坏 世界知名企业和机构接连受创 11月10日&#xff0c;LockBit再次行凶作案 某大型银行在美全资子公司遭攻击 导致部分金融服务业务中断 美国国债市场交易受此影响&#xff01…

抠某区域地图方法

1.打开阿里云数据可视化平台DataV.GeoAtlas地理小工具系列 2. 选择要抠出来的区域&#xff0c;右侧选择要下载的json文件&#xff0c;如红框所示 3. 打开下载的文件&#xff0c;内容全部复制。 4. 打开百度地图示例Examples - Apache ECharts 5. 如下图所示&#xff0c;将下…

《Scratch等级考试(1~4级)历届真题解析》专栏总目录

❤️ 专栏名称&#xff1a;《Scratch等级考试&#xff08;1~4级&#xff09;历届真题解析》 &#x1f338; 专栏介绍&#xff1a;中国电子学会《全国青少年软件编程等级考试》Scratch等级考试&#xff08;1~4级&#xff09;历届真题解析。 &#x1f680; 订阅专栏&#xff1a;原…

循环购模式玩法,打造线上平台的闭环体系

​小编介绍&#xff1a;10年专注商业模式设计及软件开发&#xff0c;擅长企业生态商业模式&#xff0c;商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地&#xff1b;扶持10余个电商平台做到营收过千万&#xff0c;数百个平台达到百万会员&#xff0c;欢迎咨询。 循…

wpf devexpress绑定grid到总计和分组统计

此主题描述了如何在gridcontrol中的视图模型和显示定义总计和分组统计 在视图模型中指定统计 1、创建 SummaryItemType 枚举你想要在GridControl中显示的统计类型&#xff1a; public enum SummaryItemType { Max, Count, None } 2、创建一个grid统计描述类 public class S…