实验5 逻辑回归

实验5 逻辑回归

【实验目的】掌握逻辑回归算法
【实验内容】处理样本,使用逻辑回归算法进行参数估计,并画出分类边界
【实验要求】写明实验步骤,必要时补充截图
1、参照“2.1梯度下降法实现线性逻辑回归.ipynb”和“2.2 sklearn实现线性逻辑回归.ipynb”,在Jupyter Notebook中新建Python运行环境,以单元格为单位运行代码,在实验报告中解释每行代码的含义,分析运行结果,把运行结果截图保存到实验报告中,并比较两种实现方式的优劣。

2.1梯度下降法实现线性逻辑回归.ipynb:
在这里插入图片描述

导入matplotlib的pyplot模块,并简称为plt,用于数据可视化。
x_data现在包含了数据集中的特征,是除了最后一列之外的所有数据。
y_data现在包含了数据集中的特征,选择了数据数组 data 的所有行和最后一列。
在这里插入图片描述

定义了一个名为 plot_logi 的函数,该函数将数据集根据标签(0或1)分割成两组,并分别使用散点图绘制这两组数据。
类别0的数据以天蓝色圆点表示,类别1的数据以红色叉号表示。
通过 plt.show() 展示包含图例的图形。
在这里插入图片描述

从数据集 data 中提取特征(x_data)和标签(y_data)。
在特征矩阵 x_data 的最左侧添加了一列全为1的数据,这个新列是通过 np.ones 函数生成的,其长度与 x_data 的行数相同,
使用 np.concatenate 函数沿着列方向(axis=1)将其与 x_data 拼接起来,形成新的特征矩阵 X_data。
在这里插入图片描述

sigmoid函数:将任意实数值映射到(0,1)区间内;
损失函数 (cost_):计算逻辑回归模型的损失(成本);
梯度上升算法 (gradAscent):通过迭代更新参数向量ws(即θ的转置),以最小化损失函数。
在这里插入图片描述

计算决策边界:对于每个 x1 值,我们计算对应的 x2 值,使得 x1theta1 + x2theta2 + theta0 = 0,即 x2 = -(x1*theta1 + theta0) / theta2
可视化决策边界
在这里插入图片描述

绘制损失曲线

运行结果:
在这里插入图片描述

ws是一个包含权重系数的数组,这些权重决定了输入特征对预测结果的贡献程度。

2.2 sklearn实现线性逻辑回归.ipynb
在这里插入图片描述

定义一个plot_logi函数,用于绘制逻辑回归的数据点
使用matplotlib绘制散点图,类别0的数据点用天蓝色(“skyblue”)的圆圈(“o”)标记,类别1的数据点用红色(“red”)的叉号(“x”)标记
在这里插入图片描述

使用x_data(特征)和y_data(标签)来训练逻辑回归模型
# fit方法会找到最佳的权重和偏置,以便将特征映射到标签上
在这里插入图片描述

计算决策边界:逻辑回归的决策边界通常是一个直线(在二维特征空间中),其方程可以表示为 theta0 + theta1x1 + theta2x2 = 0
在这里插入图片描述

score方法返回准确率

运行结果:
在这里插入图片描述
在这里插入图片描述

方法返回了 0.95 的准确率。这意味着在提供的测试数据集上,模型正确预测了 95% 的样本。

两种实现方式的优劣:
sklearn实现:
sklearn中的逻辑回归模型通常利用高度优化的算法进行训练,这些算法在收敛速度和模型准确性方面通常优于简单的梯度下降法,sklearn实现的逻辑回归模型往往能更快地达到更优的准确率。
sklearn实现的逻辑回归模型通常不需要手动设置学习率等超参数,因为sklearn中的优化算法会自动调整这些参数,这意味着可能无法完全控制模型的训练过程,从而在某些情况下可能影响模型的可解释性。

梯度下降法实现:
梯度下降法也能实现逻辑回归,但其收敛速度和准确性可能受到学习率、迭代次数等超参数的影响。若超参数设置不当,可能导致模型训练不充分或陷入局部最优解。
梯度下降法实现的逻辑回归模型提供了明确的权重系数,这些系数可以直接用于解释特征对预测结果的影响,通过调整学习率、迭代次数等超参数,可以更灵活地控制模型的训练过程。

2、读取ex2data1.txt中的数据,建立样本集,使用逻辑回归算法得到参数估计值。并在坐标图中画出分界图。
提示:参考“成绩分类版本1.ipynb”
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

结合自己的知识背景及兴趣,选做以下题目:
选做第3题:
3、读取“简单分类数据.txt”中的数据,建立样本集,使用逻辑回归算法得到参数值,并在坐标图中画出分界线

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

思维训练让你更高、更强 |【逻辑思维能力】「刷题训练笔记」假设法模式逻辑训练题(1-5)

每日一刷 思维训练让你更高、更强! 题目1 谁在说谎,谁拿走了零钱? 姐姐上街买菜回来后,就随手把手里的一些零钱放在了抽屉里,可是,等姐姐下午再去拿钱买菜的时候发现抽屉里的零钱没有了,于是&…

【愚公系列】《高效使用DeepSeek》004-DeepSeek的产品形态和功能详解

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

用python代码将excel中的数据批量写入Json中的某个字段,生成新的Json文件

需求 需求: 1.将execl文件中的A列赋值给json中的TrackId,B列赋值给json中的OId 要求 execl的每一行,对应json中的每一个OId json 如下: {"List": [{"BatchNumber": "181-{{var}}",// "Bat…

【Python】dash-fastapi前后端搭建

概述 项目中需要快速搭建一个前后端系统,涉及到dash-fastapi架构的时候,对该架构的时候进行总结。本文主要总结的是对该架构的基本使用,后续再对该架构的项目源码进行总结分析 此处实现一个小的demo,迷你任务管理器,…

IDEA中链接使用mysql数据库

一、连接mysql 1. 打开idea,在右上角侧边栏有数据库database插件,打开侧边栏点击加号->数据源,可以看到支持很多数据库,选择mysql。 2. 首次使用需要下载驱动程序,不然连接数据库会报错。找到mysql,点击…

程序编译生成的文件

目录 .i 文件 .s 文件 .o文件 总结 在 C 编程中,.i、.s和 .o 文件是编译过程中生成的不同阶段的文件,它们代表不同的含义: .i 文件 全称 :预处理后的文件(Intermediate File)。 含义:.i文件…

[S32K]SPI

SpiShiftClockidleLevel: CLK空闲时电平(CPOL); SpiDataShifrEdge:数据移位边沿(CPHA); SpiDataWidth: SpiTransferStart: MSB(高位起始),LSB(低位起始);; SpiHwUnit: 这是一个具体的硬件? SpiDataShiftE…

系统思考:客户价值

“真正的市场竞争,不是比谁更能制造产品,而是比谁更能创造价值。” ——杰夫贝索斯 在组织辅导中,我经常问团队一个问题:“我们的客户是谁?”大多数人的第一反应是——“支付费用的就是客户。” 这在过去的市场扩张阶…

ArcGIS Pro 车牌分区数据处理与地图制作全攻略

在大数据时代,地理信息系统(GIS)技术在各个领域都有着广泛的应用,而 ArcGIS Pro 作为一款功能强大的 GIS 软件,为数据处理和地图制作提供了丰富的工具和便捷的操作流程。 车牌数据作为一种重要的地理空间数据&#xf…

OpenCV图像加权函数:addWeighted

1 addWeighted函数 在OpenCV 里,addWeighted 函数的作用是对两个图像进行加权求和,常用于图像融合、图像过渡等场景。函数如下: cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])2 参数解释 src1:第一个输入图…

Tcp网络通信的基本流程梳理

先来一张经典的流程图 接下介绍一下大概流程,各个函数的参数大家自己去了解加深一下印象 服务端流程 1.创建套接字:使用 socket 函数创建一个套接字,这个套接字后续会被用于监听客户端的连接请求。 需要注意的是,服务端一般有俩…

mysql学习-删除数据(drop、truncate、delete)

1、概述 drop、truncate、delete都可以删除mysql中的数据,但它们的作用范围和操作方式有很大的不同。 2、详细区别 2.1、drop 特点: 1、速度快 2、会删除表数据,还会删除表结构,包括与该表相关的所有数据,索引&…

编程自学指南:java程序设计开发,网络编程基础,TCP编程,UDP编程,HTTP客户端开发

编程自学指南:java程序设计开发,网络编程基础 学习目标: 理解网络协议(TCP/IP、UDP)的核心概念 掌握Socket编程实现客户端与服务端通信 能够通过多线程处理并发网络请求 开发简单的网络应用(如聊天程序…

leecode797.所有可能的路径

深度优先搜索 class Solution { private:vector<vector<int>> result;vector<int> temp;void allPathsSourceTarget(vector<vector<int>> &graph,int v){if(vgraph.size()-1)result.push_back(temp);else{for(auto& adjVertex:graph[v]…

第八节:红黑树(初阶)

【本节要点】 红黑树概念红黑树性质红黑树结点定义红黑树结构红黑树插入操作的分析 一、红黑树的概念与性质 1.1 红黑树的概念 红黑树 &#xff0c;是一种 二叉搜索树 &#xff0c;但 在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是 Red和 Black 。 通过对 任何…

微信小程序threejs三维开发

微信小程序threejs开发 import * as THREE from three; const { performance, document, window, HTMLCanvasElement, requestAnimationFrame, cancelAnimationFrame, core, Event, Event0 } THREE .DHTML import Stats from three/examples/jsm/libs/stats.module.js; im…

jupyter无法转换为PDF,HTMLnbconvert failed: Pandoc wasn‘t found.

无法转为PDF 手动下载工具 https://github.com/jgm/pandoc/releases/tag/3.6.3 似乎跟我想的不大一样&#xff0c;还有新的报错 https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex 不知道下的啥玩意儿 sudo apt-get install texlive-xetex texlive-fon…

关于PLC、电缆线材及气缸选型的详细教程

以下是关于PLC、电缆线材及气缸选型的详细教程&#xff0c;整合了多个专业来源的核心要点&#xff1a; 一、PLC选型要点 生产厂家选择 日系PLC&#xff08;如三菱FX系列、欧姆龙CP1系列&#xff09;适合独立设备或简单控制系统&#xff0c;性价比高。欧美系PLC&#xff08;如西…

使用 Excel 实现绩效看板的自动化

引言 在日常工作中&#xff0c;团队的绩效监控和管理是确保项目顺利进行的重要环节。然而&#xff0c;面临着以下问题&#xff1a; ​数据分散&#xff1a;系统中的数据难以汇总&#xff0c;缺乏一个宏观的团队执行情况视图。​看板缺失&#xff1a;系统本身可能无法提供合适…

02 windows qt配置ffmpeg开发环境搭建

版本说明 首先我使用ffmpeg版本是4.2.1 QT使用版本5.14.2 我选择是c编译 在02Day.pro⾥⾯添加ffmpeg头⽂件和库⽂件路径 win32 { INCLUDEPATH $$PWD/ffmpeg-4.2.1-win32-dev/include LIBS $$PWD/ffmpeg-4.2.1-win32-dev/lib/avformat.lib \$$PWD/ffmpeg-4.2.1-win32-dev/l…