亦菲喊你来学习之机器学习(7)--逻辑回归内下采样

news2024/11/29 10:45:59

文章目录

  • 下采样
  • 优缺点
  • 下采样步骤
  • 总结

下采样

在逻辑回归中,下采样是一种处理数据不平衡问题的方法,特别是在处理二分类问题时,如果某一类的样本数量远多于另一类,就可能导致模型偏向于多数类,从而忽略了少数类的特征。下采样通过减少多数类样本的数量,使得两类样本的数量接近,从而改善模型的性能。

优缺点

  • 优点:
  1. 可以有效减少多数类样本的数量,使数据更加平衡。
  2. 有助于提高模型对少数类的识别能力。
  • 缺点:
  1. 可能会导致信息损失,因为删除了部分多数类样本。
  2. 如果删除的样本中包含重要信息或特征,可能会影响模型的泛化能力。

那么我们如何知道,什么时候使用下采样方法呐?

下采样步骤

实验数据:

链接:训练数据
提取码:0qw2

  1. 数据观察:首先,需要观察数据集的分布情况,特别是目标变量的分布,以确定是否存在数据不平衡问题。
#一、数据预处理
data = pd.read_csv('creditcard.csv')
data = data.drop('Time',axis=1)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
data['Amount'] = scaler.fit_transform(data[['Amount']])

#二、绘制图像,查看正负样本个数
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus'] = False

lei_count = pd.value_counts(data['Class'])
plt.title('样本数')
plt.xlabel('类别')
plt.ylabel('数量')

lei_count.plot(kind = 'bar')
plt.show()   #通过可视化查看样本数量差异

#(此处发现,样本数相差数量过大,进行下取样操作)

在这里插入图片描述

可以发现,类别为1的样本数量几乎不可见,样本极度不均衡。

  1. 选择样本:采用下采样,从多数类样本中随机选择一部分样本,选择的样本数量通常与少数类的样本数量相等或接近,以达到数据平衡的目的。
#进行下采样
#分别取出类别为0和1的数据
category_0 = data[data['Class'] == 0]
category_1 = data[data['Class'] == 1]

#将需要进行下采样的数据使用sample方法下采样
np.random.seed(seed=4)
choose_0 = category_0.sample(len(category_1)) #随机取出和类别1长度相等的数据
new_data = pd.concat([choose_0,category_1]) #将随机取出的0类数据与1类数据上下合并

#这样我们就得到了此刻的训练数据new_data:是由抽取的部分类别为0的数据以及类别为一的数据组成
#此处我们还可以再看看视图,查看样本数
  1. 构建模型:使用下采样后的数据集来训练逻辑回归模型。由于数据已经平衡,模型在训练过程中会更加关注少数类的特征,从而提高对少数类的识别能力。
from sklearn.linear_model import LogisticRegression
x = new_data.drop('Class',axis=1)
y = new_data.Class
#分割训练集和测试集
train_x,test_x,train_y,test_y = \
    train_test_split(x,y,test_size=0.3,random_state=0)

lr = LogisticRegression(max_iter=1000)
lr.fit(train_x,train_y)
  1. 模型评估:使用测试集对模型进行评估,观察模型在少数类和多数类上的表现。需要注意的是,由于下采样过程中删除了部分多数类样本,因此评估结果可能受到一定影响。
from sklearn import metrics
test_x_predict = lr.predict(test_x)
print(metrics.classification_report(test_y,test_x_predict))
-------------------------
              precision    recall  f1-score   support

           0       0.91      0.97      0.94       147
           1       0.97      0.90      0.93       149

    accuracy                           0.94       296
   macro avg       0.94      0.94      0.94       296
weighted avg       0.94      0.94      0.94       296

总结

本篇介绍了:

  1. 什么是下采样:一种处理数据不平衡问题的方法。
  2. 下采样的过程:从多数类样本中随机选择一部分样本,选择的样本数量通常与少数类的样本数量相等或接近。
  3. 如何进行下采样:使用sample方法取出和少数类数量相等的数据,再将新得到的样本同原本少数类的样本合并,作为新的训练集。

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

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

相关文章

基于推荐算法的景点攻略网站的设计与实现---附源码130855

摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于旅游景点分享也是十分常见的。过去使用传统广告方式对旅游景点进行推荐分享,造成了流程繁琐、难以维护,难于进准推荐给适合需求的人群等问题&#xff0…

java15-网络编程

一 网络编程概述 1.1 网络编程简介 其实,所谓的网络编程,就是编写程序,实现让同一个网络中的机器实现数据的传递,实现通信。 Java是 Internet 的语言,它从语言级上提供了对网络应用程序的支持。 Java提供的网络类库&a…

注册Github账号详细过程

目录 一、准备工作 二、注册步骤 一、准备工作 在注册GitHub账号之前,请确保您已经准备好以下信息: 一个有效的电子邮箱地址:用于接收验证邮件和GitHub的后续通知。 用户名:确保该用户名在GitHub上是唯一的,且符合…

如何选择合适的端口管控软件

一、明确需求 管控的端口类型:首先确定需要管控的端口类型是USB端口,还是需要同时管控串口、并口等其他类型的端口。 管控的力度:确定是需要对所有端口进行统一管控,还是需要根据不同的用户或部门实施不同的策略。 日志记录需求…

图神经网络教程1-综述

目录 前言 介绍 贡献 分类 预备知识 学习方式 转导式学习 归纳学习 系列文章列表 前言 翻译自A Practical Tutorial on Graph Neural Networks,并给出详细的解释和注意事项以及个人的思考,原作者如下: 介绍 当代人工智能(AI)&#x…

最佳实践:CI/CD交付模式下的运维展望丨IDCF

李洪锋 启迪万众数字技术(广州)有限公司 ,产品研发中心-系统运维部、研发效能(DevOps)工程师(中级)课程学员 一、DevOps现状 据云计算产业联盟《中国DevOps现状调查报告2023》显示,国内DevOps 落地成熟度…

JUC阻塞队列(四):DelayQueue

1、DelayQueue介绍 DelayQueue 是一个延迟队列,生产者写入一个数据,这个数据具有被直接消费的延迟时间, 让数据具有延迟的特性。 DelayQueue底层也是基于二叉堆来实现的,DelayQueue本就是基于PriorityBQueue 实现的。 二叉堆结构每…

NCL画出来的图模糊问题处理

问题介绍: 如图所示,NCL画出来的图分辨率比较低,图片比较模糊,怎么将分辨率提高? 解决方法: ; 采用这个方法来定义wkswks_type "png"wks_typewkWidth 2500wks_typewkHeight 2500wks gsn_…

网易、网易互娱、360、头条、商汤等公司面试真题....

测试岗/测试开发岗面试真题 来源与网易、网易互娱、360、头条、商汤等公司面试真题 自我介绍 项目中负责什么? 团队几个人?合作情况 为什么要读研 项目/实习介绍 项目中负责什么? 团队几个人?合作情况 项目的方法怎么改进,和别人方…

微信为什么会限制加好友?

微信限制加好友主要是为了防止垃圾信息和滥用行为,包括以下几个原因: 1、防止骚扰:限制加好友可以减少陌生人骚扰和垃圾广告。 2、保护用户隐私:控制好友请求能更好地保护用户的个人信息。 3、提升用户体验:避免用户…

用博达网站群管理平台设计网站时如何创建二级导航

1 介绍 现用博达网站群管理平台设计出的网站只能一级导航,亦即点击首页的顶端导航,直接出现列表页,无法出现二级菜单。二级菜单在网站开发中被称为二级导航。 怎样用博达网站群管理平台制作出二级导航的效果?这个问题在《网站群…

掌握电子邮件的艺术:使用 Mailbird 统一管理您的数字生活

在数字时代,电子邮件已成为我们沟通的骨干。无论是商务交流、家庭联络,还是订阅更新,我们几乎每天都在使用电子邮件。但随着账户数量的增加,管理这些账户变得日益复杂。如何有效地整合和优化您的电子邮件体验?Mailbird…

Arduino调试ESP32常见问题 exit status 1

问题1:代码上传(烧录)报Failed uploading: uploading error: exit status 1大概率原因:没有安装对应的驱动,我的ESP32驱动是CH340点击这里下载CH340 下载后打开,若出现乱码不用在意,点击第一个按…

原生js实现下滑到当前模块进度条填充

<div style"height: 1500px;"></div> <div class"progress-container"><div class"progress-bar" data-progress"90%"><p class"progress-text">Google Ads在Google搜索引擎上覆盖超过90%的互…

浙江大学蒋超实验室在JHM发文揭示日常使用量的一次性纸杯释放的微塑料或可能影响孕期健康

CQ师姐做的一个纸杯微塑料项目&#xff0c;非常有意思&#xff0c;揭示了日常生活中真实来源的孕期微塑料暴露&#xff0c;对生殖和代谢性能的影响和调控机制。我参与了其中的部分实验和分析&#xff0c;学习了养小鼠&#xff0c;灌胃&#xff0c;解剖和部分塑料的定性定量等实…

二、Socket链接方式分类

一、Socket通信基本流程图 1、流程图 2、链接方式 &#xff08;1&#xff09;同步 商业中不会用&#xff0c;会有阻塞的情况出现&#xff1b;举例&#xff1a; 客户端的玩家升级&#xff0c;向服务器发送这条信息&#xff0c;而服务器传输回来需要一定时间&#xff0c;此时…

探索《黑神话:悟空》品质保障的背后:ISO体系认证

《黑神话&#xff1a;悟空》横空出世 8月20日上午10点&#xff0c;国产首款大型3A游戏《黑神话&#xff1a;悟空》正式上线。游戏一经上线便吸引了无数国内外用户的关注&#xff0c;不仅仅是因为其高超的游戏制作技术&#xff0c;极高的画面精度&#xff0c;精良的的视觉和战斗…

如何将平淡无奇的产品推向市场?借助ChatGPT,仅需3秒即可化身短视频创意策划大师,助你的产品一夜成名!

本文通过一系列生动的实例&#xff0c;展示了如何通过ChatGPT生成创意和独特的宣传方式&#xff0c;将平凡或不起眼的产品转化为市场上的明星。从全红婵最爱的小乌龟到棋牌室排烟机&#xff0c;再到食物研磨器的成功案例&#xff0c;我们可以看到&#xff0c;创意和创新的宣传策…

手把手教你如何注册使用Runway Gen3,10秒搞定专业级视频制作

大家好&#xff01;我是YUAN。 今天&#xff0c;我们要介绍的是一款AI视频制作的王者级工具——Runway Gen-3。它不仅能够在短时间内生成高质量的视频&#xff0c;还能满足不同风格和场景的需求。 一、Runway Gen-3是什么&#xff1f; Runway Gen-3是一款功能强大的AI视频生…

jenkins最佳实践(二):Pipeline流水线部署springCloud微服务项目

各位小伙伴们大家好呀&#xff0c;我是小金&#xff0c;本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目&#xff0c;之前没怎么搞过部署相关的&#xff0c;以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题&#xff0c;特写此篇&#xff0…