Coggle 30 Days of ML (23年7月)任务二:数据可视化

Coggle 30 Days of ML (23年7月)任务二:数据可视化

任务二:对数据集字符进行可视化,统计标签和字符分布

  • 说明:在这个任务中,需要使用Pandas库对数据集的字符进行可视化,并统计数据集中的标签和字符的分布情况,以便更好地理解数据集。
  • 实践步骤:
    1. 使用Pandas库读取和加载数据集。
    2. 使用Pandas的可视化功能,如柱状图或饼图,对数据集的字符进行可视化展示。
    3. 使用Pandas的统计功能,如value_counts()方法,统计数据集中的标签和字符的分布情况。

数据读取

与任务一相同,首先利用Pandas库读取和加载数据集

train_data = pd.read_csv('ChatGPT/train.csv')
test_data = pd.read_csv('ChatGPT/test.csv')

数据可视化

接下来进行数据可视化,name字段是顺序是无意义的,所以我们主要是看有关于label字段和content字段的信息

在数据中,我发现有一个比较奇怪的地方,在content字段中,每一个数字都是占4位,以空格为分隔,为了方便操作,我先将其转为数字的数组,“ 0”也变成“0”,把左右两边的空格去掉,方便后续进行统计,统计得到数据如图所示

在这里插入图片描述

接下来我首先统计了一下content字段的数字列表长度,发现大部分长度实际上都是200,只有少部分长度不是200

train_data['char_count'] = train_data['content'].apply(lambda x:len(x.split(' ')))
print(train_data['char_count'].value_counts())


# 绘制字符数量分布柱状图
train_data['char_count'].plot(kind='hist', bins=30, rwidth=0.8)
plt.xlabel('Character Count')
plt.ylabel('Frequency')
plt.title('Distribution of Character Counts')
plt.show()
200    13956
176        3
150        3
1          2
188        2
181        2
198        2
184        2
193        2
167        2
177        2
187        2
166        2
81         1
197        1
180        1
196        1
160        1
134        1
199        1
130        1
102        1
142        1
172        1
173        1
171        1
185        1
195        1
154        1
186        1
161        1
Name: char_count, dtype: int64

在这里插入图片描述

处于好奇心,我对这一部分长度不是200的进行筛选,查看有什么关系

train_data[train_data['char_count'] != 200]['label'].value_counts()
1    30
0    14
Name: label, dtype: int64

对于整体的数据来说,几乎大部分都是200的长度,另外不同的数据里面,大部分都是标签为1的数据,所以在这种情况下,数据更可能是gpt生产的

标签分布可视化

接下里对标签分布进行可视化,从结果可以看出,大部分的数据分布额都是Label为0的,数据的比例大概是5:1,所以存在一部分样本不平衡的情况,可以后续进行改进。

# 统计标签分布
label_counts = train_data['label'].value_counts()
print(label_counts)
# 绘制标签分布条形图
plt.bar(label_counts.index, label_counts.values)
plt.xlabel('Label')
plt.ylabel('Count')
plt.title('Label Distribution')

# 添加标签名称
label_names = ['Label 0', 'Label 1']  # 用实际的标签名称替换这些示例名称
plt.xticks(label_counts.index, label_names)

plt.show()
0    11836
1     2164
Name: label, dtype: int64

在这里插入图片描述

字符分布统计

接下来统计每一个content中的数字的分布,查看出现最多的50个,如下图所示,可以看到3125这个数字出现过很多次,也可以猜测这是一个主语等,后续可以对其进行分析

# 获取字符数量分布数据
char_distribution = train_data['content'].str.split(' ', expand=True).stack().value_counts()

# 绘制前50个字符数量分布柱状图
char_distribution[:50].plot(kind='bar', figsize=(12, 6))
plt.xlabel('Character')
plt.ylabel('Frequency')
plt.title('Character Distribution (Top 50)')
plt.show() 

在这里插入图片描述

为了查看不同标签数据的分布,我也分别进行筛选查看字符分布统计

Label为0

# 获取字符数量分布数据
char_distribution = train_data[train_data['label']==0]['content'].str.split(' ', expand=True).stack().value_counts()

# 绘制前50个字符数量分布柱状图
char_distribution[:50].plot(kind='bar', figsize=(12, 6))
plt.xlabel('Character')
plt.ylabel('Frequency')
plt.title('Character Distribution (Top 50) Label = 0')
plt.show() 

在这里插入图片描述

Label为1

# 获取字符数量分布数据
char_distribution = train_data[train_data['label']==1]['content'].str.split(' ', expand=True).stack().value_counts()

# 绘制前50个字符数量分布柱状图
char_distribution[:50].plot(kind='bar', figsize=(12, 6))
plt.xlabel('Character')
plt.ylabel('Frequency')
plt.title('Character Distribution (Top 50) Label = 1')
plt.show() 

在这里插入图片描述

从结果可以看出,label不同的时候,整体的分布在top5的分布差异不大,但是在后续,似乎有不同,可能是因为数据量大小原因,后续可以进行探究和学习

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

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

相关文章

深入了解C语言中scanf()函数的用法

目录 正文 一、基本用法 二、格式化字符串 三、多个输入值 四、错误处理 五、总结 正文 在C语言中,scanf()函数是一个非常有用的输入函数,它允许我们从用户那里获取输入,并将输入存储到指定的变量中。本文将详细介绍scanf()函数的使用方…

基于单片机停车场刷卡收费的设计与实现

功能介绍 以51单片机作为主控系统;通过液晶显示当前时间,车位、剩余车位、时间等信息;进电机正反转表示开关门;按键可以设置当前时间/单价/分钟;RC522射频卡识别,当刷卡后模拟汽车驶入,开始收费…

驱动开发-day10

驱动代码&#xff1a; #include <linux/cdev.h> #include <linux/device.h> #include <linux/fs.h> #include <linux/gpio.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/mod_devicetable.h> #include …

OpenCV 入门教程:轮廓特征和轮廓匹配

OpenCV 入门教程&#xff1a;轮廓特征和轮廓匹配 导语一、轮廓特征二、轮廓匹配三、示例应用3.1 目标识别3.2 形状分析 总结 导语 轮廓特征和轮廓匹配是图像处理中用于描述和比较轮廓的技术。通过提取轮廓的形状、面积、周长等特征&#xff0c;并进行比较和匹配&#xff0c;我…

Python+Requests+Excel接口测试实战

1、EXCEL文件接口保存方式&#xff0c;如图。 2、然后就是读取EXCEL文件中的数据方法&#xff0c;如下&#xff1a; 1 import xlrd2 3 4 class readExcel(object):5 def __init__(self, path):6 self.path path7 8 property9 def getSheet(self): 10 …

flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法

flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法 使用Android studio经常出现Running Gradle task ‘assembleDebug‘问题&#xff0c;记录一下解决方法。 一、在Android目录下更改build.gradle 将repositories中的google(), mavenCentral() repositori…

从钢铁行业数字化管控平台的智能进化,看超自动化能力边界

文/王吉伟 钢铁行业的数字化转型&#xff0c;历来都是值得探讨的热点话题。 2022年&#xff0c;我国粗钢产量10.13亿吨&#xff0c;占据了全球钢铁供给市场的半壁江山。 这组数据可谓非常抢眼&#xff0c;但仍旧难掩诸多企业的各种经营问题。 钢铁生产过程工序众多&#xf…

计算机网络-网络层上篇

目录 一、网络层概述 二、网络层提供的两种服务 &#xff08;一&#xff09;面向连接的虚电路服务 &#xff08;二&#xff09;无连接的数据报服务 &#xff08;三&#xff09;虚电路服务与数据报服务的比较 三、IPv4地址及其应用 &#xff08;一&#xff09;IPv4地址概…

python中的生成器(generator)

一、生成器 生成器是 Python 中非常有用的一种数据类型&#xff0c;它可以让你在 Python 中更加高效地处理大量数据。生成器可以让你一次生成一个值&#xff0c;而不是一次生成一个序列&#xff0c;这样可以节省内存并提高性能 二、实现generator的两种方式 python中的gener…

SuperMap iClient3D for Cesium最短路径分析

作者&#xff1a;Mei 目录 前言实现思路实现步骤1、构建二维网络数据集1.1拓扑检查1.2线拓扑数据集处理1.3构建二维网络数据集 2、发布网络分析服务3、实现代码 前言 在交通、消防业务场景中&#xff0c;如果某地发生火灾或者交通事故&#xff0c;需要快速规划出最短抢救路线&a…

flask计算pin码

目录 Flask计算pin码 <1> 概念 什么是pin码&#xff1f; pin码生成条件&#xff1f; 读取相关文件绕过过滤 <2> 源码分析 werkzeug 1.0.x版本 计算PIN的源码 werkzeug 2.0.x版本 计算PIN的源码 <3> 计算生成pin的脚本 CTF中 flask-pin的应用 <1…

volatile原理剖析和实例讲解

一、是什么 volatile是Java的一个关键字&#xff0c;是Java提供的一种轻量级的同步机制&#xff0c; 二、能做什么 保证了不同线程对这个变量进行操作时的可见性&#xff0c;有序性。 三、可见性 可见性主要是指一个线程修改了共享变量的值&#xff0c;另一个线程可以看见…

RPC 框架架构设计

RPC 框架架构设计 RPC 又称远程过程调用&#xff08;Remote Procedure Call&#xff09;&#xff0c;用于解决分布式系统中服务之间的调用问题。通俗地讲&#xff0c;就是开发者能够像调用本地方法一样调用远程的服务。下面我们通过一幅图来说说 RPC 框架的基本架构。 RPC 框架…

Python_与redis数据库交互

目录 redis模块的使用 连接方式 连接池 操作 设置值 获取值 管道 事务 源码等资料获取方法 python可以使用redis模块来跟redis交互 redis模块的使用 安装模块: pip3 install redis 导入模块&#xff1a;import redis 连接方式 严格连接模式&#xff1a;rredis.St…

40.RocketMQ之高频面试题大全

消息中间件如何选型 RabbitMQ erlang开发&#xff0c;对消息堆积的支持并不好&#xff0c;当大量消息积压的时候&#xff0c;会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息。 RocketMQ java开发&#xff0c;面向互联网集群化功能丰富&#xff0c;对在线业…

Win10安全中心怎么关闭?Win10安全中心关闭方法

Win10安全中心怎么关闭&#xff1f;关闭Win10的安全中心可以帮助用户自定义系统的安全和防护设置&#xff0c;但有些用户不知道怎么操作才能关闭安全中心&#xff0c;首先用户需要打开Win10电脑的设置选项&#xff0c;接着打开安全中心&#xff0c;然后关掉安全中心的实时保护、…

SQL力扣练习(六)

目录 1. 部门工资前三高的所有员工(185) 题解一(dense_rank()窗口函数&#xff09; 题解二&#xff08;自定义函数&#xff09; 2.删除重复的电子邮箱(196) 题解一 题解二&#xff08;官方解析&#xff09; 3.上升的温度(197) 解法一&#xff08;DATEDIFF()&#xff09;…

非主流币波段策略

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

探究Vue源码:mustache模板引擎(5) 对比rollup与webpack,在本地搭建webpack环境

好 从本文开始 我们就来手写一下mustache这个库 他是模板引擎的一个祖先 将模板字符串编译成一个dom字符串 就是它的思想&#xff0c;这也是一个具有跨时代意义的思想 这里的话 我们还是搭一个 webpack 的项目环境 这里值得一提的是 mustache 他官方是通过rollup来进行打包的 …

【Docker】Docker的部署含服务和应用、多租环境、Linux内核的详细介绍

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…