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

系列文章目录

第一章 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.mzph.cn/news/105789.shtml

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

相关文章

Prometheus:优秀和强大的监控报警工具

文章目录 概述Prometheus的底层技术和原理数据模型数据采集数据存储查询语言数据可视化 Prometheus的部署Prometheus的使用配置数据采集目标查询监控数据设置警报规则 查看数据可视化总结 概述 Prometheus是一款开源的监控和警报工具,用于收集和存储系统和应用程序…

mysql主从工作原理、搭建

目录 一、mysql为什么要用主从架构? 二、mysql数据库主从复制原理是什么? 详细的主从复制过程如下图: 主从复制过程概述: 三、mysql主从如何搭建? 本次安装的数据库版本为mysql5.7 1、准备两台服务器&#xff08…

tomcat多实例部署jenkins

tomcat多实例部署jenkins 文章目录 tomcat多实例部署jenkins1.简介:2.优缺点:3.工作原理:4.工作流程:5.tomcat多实例部署jenkins流程5.1.环境说明5.2.部署前准备工作5.3.多实例部署tomcat5.4.部署jenkins5.5.创建一个jenkins项目5…

Three.js如何计算3DObject的2D包围框?

推荐:用 NSDT编辑器 快速搭建可编程3D场景 在Three.js应用开发中,有时你可能需要为3D场景中的网格绘制2D的包围框,应该怎么做? 朴素的想法是把网格的3D包围框投影到屏幕空间,例如,下图中的绿色框 3D包围框…

npm install报--4048错误和ERR_SOCKET_TIMEOUT问题解决方法之一

一、问题描述 学习vue数字大屏加载动漫效果时,在项目终端页面输入全局下载指令 npm install -g json-server 问题1、报--4048错误 会报如下错误 operation not permitted......errno: -4048code:EPERMsyscall: mkdir......The operation was reiected by your op…

【分布式计算】九、容错性 Fault Tolerance

分布式系统应当有一定的容错性,发生故障时仍能运行 一些概念: 可用性Availability:系统是否准备好立即使用 可靠性Reliability:系统连续运行不发生故障 安全性:衡量安全故障的指标,没有严重事件发生 可维护…

RBF神经网络案例——客户流失率预测

目录 背景介绍 1、径向基神经网络结构 2、符号说明 3、计算网络输出 4、计算能量函数 网络学习步骤 步骤1、先将能量函数E写成各参数的复合函数结构 步骤2、求E关于各参数的偏导 步骤3、求各参数的调整量 步骤4、计算各参数的调整量 5、按照步骤1-步骤4编写RBF神经网络…

【广州华锐互动】智轨列车AR互动教学系统

智轨列车,也被称为路面电车或拖电车,是一种公共交通工具,它在城市的街头巷尾提供了一种有效、环保的出行方式。智轨列车的概念已经存在了很长时间,但是随着科技的发展,我们现在可以更好地理解和欣赏它。通过使用增强现…

【设计模式】七、适配器模式

文章目录 现实生活中的适配器例子基本介绍工作原理举例:类适配器模式类适配器模式介绍类适配器模式应用实例 举例:对象适配器模式基本思路对象适配器模式应用实例 举例:接口适配器模式接口适配器模式应用实例适配器模式在 SpringMVC 框架应用…

并查集路径压缩

我们来看看如果要是100个数,往20个数的集合合并如何 那么我们应该,把数据量小的集合往数据量大的合并 解决另一种极端场景的路径压缩

ChatGPT快速入门

ChatGPT快速入门 一、什么是ChatGPT二、ChatGPT底层逻辑2.1 实现原理2.2 IO流程 三、ChatGPT应用场景3.1 知心好友3.2 文案助理3.3 创意助理3.4 角色扮演 一、什么是ChatGPT ChatGPT指的是基于GPT(Generative Pre-trained Transformer)模型的对话生成系…

设计模式03———包装器模式 c#

首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 创建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 (个人喜好)调节渐变色 可更改同种颜色的色调 (个人喜好) 调节天空盒 准备工作做完后 接下我们做【…

接口测试如何测?最全的接口测试总结,资深测试老鸟整理...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、接口测试的流程…

Windows:Arduino IDE 开发环境配置【保姆级】

参考官网:Arduino - Home Arduino是一款简单易学且功能丰富的开源平台,包含硬件部分(各种型号的Arduino开发板)和软件部分(Arduino IDE)以及广大爱好者和专业人员共同搭建和维护的互联网社区和资源。 Arduino IDE软件…

算法村开篇

大家好我是苏麟从今天开始我将带来算法的一些习题和心得体会等等...... 算法村介绍 我们一步步地学习算法本专栏会以闯关的方式来学习算法 循序渐进地系统的学习算法并掌握大部分面试知识 , 期待和大家一起进步 . 索大祝大家学有所成 , 前程似锦.

车载电子电器架构 —— 国产基础软件生态简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

vue3 新特性(defineOptions defineModel)

Vue3.3 新特性-defineOptions 背景说明&#xff1a; 有 <script setup> 之前&#xff0c;如果要定义 props, emits 可以轻而易举地添加一个与 setup 平级的属性。 但是用了 <script setup> 后&#xff0c;就没法这么干了 setup 属性已经没有了&#xff0c;自然无法…

一文深入理解高并发服务器性能优化

我们现在已经搞定了 C10K并发连接问题 &#xff0c;升级一下&#xff0c;如何支持千万级的并发连接&#xff1f;你可能说&#xff0c;这不可能。你说错了&#xff0c;现在的系统可以支持千万级的并发连接&#xff0c;只不过所使用的那些激进的技术&#xff0c;并不为人所熟悉。…

Sui账户抽象消除用户使用障碍,让大规模用户使用区块链成为可能

Sui通过其本机语言和两个特定功能实现了账户抽象&#xff0c;使账户管理中更加细节化的过程自动化。无论是zkLogin还是赞助交易&#xff0c;都简化了用户的使用过程&#xff0c;而Sui Move的基本结构则使开发人员能够提供丝滑的体验。 最近&#xff0c;随着区块链寻求扩大其用…

基于Eigen的位姿转换

位姿中姿态的表示形式有很多种&#xff0c;比如&#xff1a;旋转矩阵、四元数、欧拉角、旋转向量等等。这里基于Eigen实现四种数学形式的相互转换功能。本文利用Eigen实现上述四种形式的相互转换。我这里给出一个SE3&#xff08;4*4&#xff09;(先平移、再旋转)的构建方法&…