Python 机器学习入门之逻辑回归

news2024/11/25 20:51:55

系列文章目录

第一章 Python 机器学习入门之线性回归
第一章 Python 机器学习入门之梯度下降法
第一章 Python 机器学习入门之牛顿法
第二章 Python 机器学习入门之逻辑回归

逻辑回归

  • 系列文章目录
  • 前言
  • 一、逻辑回归简介
  • 二、逻辑回归推导
    • 1、问题
    • 2、Sigmoid函数
    • 3、目标函数
      • 3.1 让步比
      • 3.2 极大似然估计
      • 3.3 推导
    • 4、代价函数
    • 5、最大化似然函数
  • 三、逻辑回归实现
    • 结果展示

前言

第二次实验开始了,内容是逻辑回归,听起来像是线性回归的兄弟,然而仔细查阅后发现逻辑回归其实是一种分类算法;

我们知道回归算法的结果建立在连续的数据上,分类算法的结果建立在离散的数据上;因此逻辑回归本质上是一种分类算法,那问题就来了,一个分类算法为啥叫回归呢?
在这里插入图片描述

一、逻辑回归简介

百科定义:
logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。

简单来说,逻辑回归还是建立在我们之前学习的线性回归模型基础上,使用回归的方法来实现分类的目的;就好像同在一个专业学习,有些人学习计算机是为了成为一个优秀的程序员,有些人学计算机是为了挑选出优秀的程序员,结果不一样但在过程中是有很多的相似之处的。

二、逻辑回归推导

1、问题

假设你是一个大学系的管理员,你想根据两个考试的结果确定每个申请人的录取机会。您可以将以前申请者的历史数据用作逻辑回归的培训集。对于每个培训示例,您都有申请人的两次考试成绩和录取决定。为了实现这一点,我们将建立一个分类模型,根据考试成绩估计入学概率。(取自吴恩达机器学习中文版课后题)

先来分析一下,如果我们现在使用线性回归模型来分析该该题,我们最后得出的结论应该是根据考试成绩来预测入学成绩,但是现在结果需要我们来判断是否能成功入学,那我们就在此基础上对之前的入学成绩设定阈值,根据该阈值对结果进行分类来选择是否录取;

但是线性回归模型往往是一条斜线,如何满足结果不是0就是1呢?因此我们引入了Sigmoid函数。

2、Sigmoid函数

先看一下线性回归模型假设函数
在这里插入图片描述
sigmoid函数公式如下
在这里插入图片描述
将线性回归模型的预测值视为上式的自变量z,可得出下图结果
在这里插入图片描述
然而上图结果仍然不是我们真正需要的结果,我们需要的是一个二元离散模型,结果非1即0,因此我们还需处理一下,根据与阈值的差值判断结果
blog.csdnimg.cn/cc9d8f8ac08e47b98b2d5b5d49bf941e.png)
当y ̂ ==0.5时,我们根据实际情况来定;同时上面的阈值是我们手动设置的(并不一定需要0.5),依情况而定,这也是逻辑回归模型的优势之一

3、目标函数

在上面的sigmiod函数上我们建立了逻辑回归的假设函数,我们想要得到它的目标函数,首先得知道自变量X和结果变量y之间的关系,因此我们引入两个概念让步比极大似然估计

3.1 让步比

让步比可以理解成有利于某一特定事件的概率,如下
在这里插入图片描述

3.2 极大似然估计

思想:如果一个事件发生了,那么发生这个事件的概率就是最大的;对于样本i,其类别为
y ̂ ∈(0,1),对于样本i,可以把h(Xi)看成是一种概率;yi对应是1时,概率是h(Xi)(即Xi属于1的概率,即p(Y=1|X));yi对应是0时,概率是1-h(Xi)(Xi属于0的概率,即p(Y=0|X)

已知下式
在这里插入图片描述
在这里使用极大似然估计做一个假设,假设y ̂ 为样本x为正例的概率,那么1-y ̂ 为样本x为负例的概率

在此基础上我们可以将让步比的对数形式转成特征值相关式子;
在这里插入图片描述
然而我们更想要的是预测值和它发生的概率之间的关系,即让步比之间的逆形式
在这里插入图片描述

3.3 推导

已知样本X结果分类的概率
在这里插入图片描述
将上式联系得y的概念分布函数
在这里插入图片描述
通过y的概率分布函数表达式即可得似然函数为(m为样本数量)
在这里插入图片描述
通过似然函数得到对数似然函数即目标函数
在这里插入图片描述

4、代价函数

对于二分类问题,分别考虑y=1和y=0的情况
在这里插入图片描述

5、最大化似然函数

最大似然估计是似然函数最初也是最自然的应用,似然函数取得最大值表示相应的参数能够使得统计模型最为合理
可以使用梯度上升法和牛顿法两种优化方法,这里说一下梯度上升法,本质和之前的梯度下降原理一一样,展开一阶梯度来求最优解;先求目标函数对参数w的偏导

在这里插入图片描述
因此逻辑回归模型的梯度下降函数如下,wj代表第j个模型参数
在这里插入图片描述

三、逻辑回归实现

结果展示

在这里插入图片描述

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

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

相关文章

【C语言】对文件的输入输出

💗个人主页💗 ⭐个人专栏——C语言初步学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读1. 什么是文件1.1 程序文件1.2 数据文件1.3 数据流1.4 文件名 2. 文件的分类3. 文件缓冲区4. 文件的打开和关闭4.1 文…

IDEA插件推荐:TabColor

国庆假期,闲来无事,笔者自己开发了一个简易的IDEA插件。 TabColor 这是一个IDEA插件。通过改变核心Tab的颜色,将开发者从一堆Tab的迷茫中解放! 安装 IDEA插件安装界面,搜索TabColor,进行安装。从浏览器下…

最详细STM32,cubeMX 点亮 led

这篇文章将详细介绍 如何在 stm32103 板子上点亮一个LED. 文章目录 前言一、开发环境搭建。二、LED 原理图解读三、什么是 GPIO四、cubeMX 配置工程五、解读 cubeMX 生成的代码六、延时函数七、控制引脚状态函数点亮 LED 八、GPIO 的工作模式九、为什么使用推挽输出驱动 LED总结…

云上攻防-云原生篇Docker安全权限环境检测容器逃逸特权模式危险挂载

文章目录 前言1、Docker是干嘛的?2、Docker对于渗透测试影响?3、Docker渗透测试点有那些?4、前渗透-判断在Docker中方式一:查询cgroup信息方式二:检查/.dockerenv文件方式三:检查mount信息方式四&#xff1…

NSDT编辑器实现数字孪生

数字孪生的强大功能来自于将真实世界的资产与真实世界的数据联系起来,因此您可以更好地可视化它们。数字孪生使跨职能团队能够以交互式和沉浸式方式协作设计、构建、测试、部署和操作复杂系统。 如何创建数字孪生? 数字孪生是通过导入概念模型&#xf…

C++学习——对象的内存模型

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 对象被创建时会在栈区或者堆区分配内存。我们直观的认识是,如果创建了 10 个对象,就要分别为这 10 个对象的成员变量和成员函数分配内存,如下图所示…

Realm violation Datapatch 禁用DBV database vault

Datapatch failed with the error ORA-47410: Realm violation for CREATE ROLE (Doc ID 2306010.1)​编辑To Bottom APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.0.2 and later Oracle Database Cloud Schema Service - Version N/A and later Oracle…

使用LLM在KG上进行复杂的逻辑推理10.12+10.13

使用LLM在KG上进行复杂的逻辑推理 摘要介绍相关工作方法问题格式化邻域检索和逻辑链分解链状推理提示实施细节 摘要 在知识图谱上进行推理是一项具有挑战性的任务,这需要深度理解实体之间复杂的关系和它们关系的逻辑。而当前的方法通常依赖于学习 几何形状 以将实体…

5+非肿瘤分析,分型+WGCNA+机器学习筛选相关基因

今天给同学们分享一篇非肿瘤分型机器学习WGCNA实验的生信文章“Identification of diagnostic markers related to oxidative stress and inflammatory response in diabetic kidney disease by machine learning algorithms: Evidence from human transcriptomic data and mou…

C# U2Net Portrait 跨界肖像画

效果 项目 下载 可执行文件exe下载 源码下载

【环境】Ubuntu20.04 安装 Anaconda 顺顺利利

ubuntu里面安装的Anaconda也是顺顺利利 别忘了source source一下 参考链接 中间遇到了一个问题,用下面的链接轻松解决了 关于修改anaconda安装路径的问题

RT-Thread MQTT(学习)

MQTT背景应用 MQTT是机器对机器(M2M)/物联网(IoT)连接协议,英文全名为“Message Queuing Telemetry Transport”,“消息队列遥测传输”协议。它是专为受限设备和低带宽、高延迟或不可靠的网络而设计的&…

基于SpringBoot的社区团购系统

基于SpringBoot的社区团购系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员管理员:登录、个人中心、用户管理、…

【aloam】ubuntu20.04 配置 aloam 环境,编译过程报错及成功解决方法

为什么写这篇博客 ALOAM是slamer的必经之路,official提供的基础环境推荐ubuntu16.04或者18.04,而我用20.04已经有一段时间了,不方便换,但由于其他原因也不得不去配置。过程中出现了几个问题,在这里也就20分钟&#xf…

【网安专题10.11】软件安全+安全代码大模型

软件安全安全代码大模型 写在最前面一些启发科研方法科研思路 课程考察要求软件供应链安全漏洞复制1、代码克隆2、组件依赖分析 关键组件安全不足,漏洞指数级放大供应链投毒内部攻击源代码攻击分发、下载网站攻击更新、补丁网站攻击 形成技术壁垒(找方向…

链表——单链表的简单介绍

前提须知: 顺序表的简单介绍_明 日 香的博客-CSDN博客 顺序表的缺点: 从之前的博客中,我们得知,顺序表的本质实际上是一种数组。而数组的最大特征就是连续的空间。也因此,在线性表中,顺序表是一种物理上…

[每周一更]-(第67期):docker-compose 部署php的laravel项目

容器化部署laravel框架的php项目 操作步骤 参考: https://www.cnblogs.com/jingjingxyk/p/16842937.htmlhttps://developer.aliyun.com/article/708976 0、plv项目修改 composer install.env 修改后台地址 IP:端口chmod -R 777 public / chmod -R 777 storagevi…

ELK下载(Elasticsearch、Logstash、Kibana)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

Simple RPC - 01 框架原理及总体架构初探

文章目录 概述RPC 框架是怎么调用远程服务的?客户端侧的逻辑服务端侧的逻辑完整流程 客户端是如何找到服务端地址的呢?核心:NamingService跨语言的RPC实现原理 RPC 框架的总体结构对外接口服务注册中心如何使用业务服务接口客户端服务端 模块…

【数据结构】:栈的实现

1 栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则 压栈…