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

news/2024/11/8 14:42:47/

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的分布差异不大,但是在后续,似乎有不同,可能是因为数据量大小原因,后续可以进行探究和学习


http://www.ppmy.cn/news/806684.html

相关文章

php程序员用win本还是mac,程序员买电脑买Windows还是苹果的

我是一名大一学生,原本想买一台Thinkpad的,但我哥说还不如买一台苹果,以后开发也是大多用苹果电脑。希望大家推荐(有点小白,但还是希望大家指点一下)我是一名大一学生,原本想买一台Thinkpad的,但我哥说还不…

华为MatebookD装华为MatebookDwin10PROx专业版的教程

以下教程适用于动手能力厉害的花粉,能力不够的仅供参考。 第一步 准备工作。首先我们需要的工具有:8G优盘一个,华为MatebookDwin10PROx专业版镜像 镜像下载地址: 第二步 下载好,华为MatebookDwin10PROx专业版镜像写入8GU盘&#…

mac可以只安装win10系统吗,2023年 Macbook Air 全格单独安装win10教程

说明: 1、以下介绍mac book air 13寸单独安装win10系统的方法,不是双系统,即全盘格式化只安装win10系统 2、安装之前请做好相应的备份操作,避免重要数据丢失,如果要换回MAC OS,需要制作或购买苹果启动盘重…

苹果笔买原装的还是随便买?好用又便宜的平替电容笔

如今,电容笔在网上办公室、网上教育等行业都很受欢迎,平替电容笔会取代苹果原装的电容笔吗?事实上,你完全没有必要花费大量的金钱来购买一支原装的苹果电容笔。一支普通的平替式电容笔也就一百到二百块钱,比起苹果的电…

获追捧的 Win10 精简 “魔改版”OS, 被微软封杀!

点击“开发者技术前线”,选择“星标????” 让一部分开发者看到未来 编辑:可可 开发者技术前线综合 在近二十年里,世界各地的国家或城市政府不断地高调宣布拥抱开源,想用 Linux 系统取代 Windows,希望能借此减少 IT…

Win10系统屏保不更新 不正常显示

Win10系统屏保不更新 不正常显示 问题11.微软“Windows聚焦”不更新、图片不变了怎么办?Windows10锁屏界面的背景默认设置的是“Windows聚焦”,在使用Microsoft帐户登录系统的情况下,能够实现自动更换锁屏壁纸,让你每天都能看到不…

微软圣经:win11正式版到底行不行之问题解决贴,解决小bug之后大呼真香

之前win11出预览版也是一直忍着不升就怕出现特别严重的bug,所以一直就等到了今天正式版推出,真的是等了好久终于等到了今天,因为没收到升级推送,所以直接用微软官方的工具升的,升级之后有点小失望但整体还是挺满意的 …

微软:不是所有电脑都能升级Win11,网友:看我偷梁换柱

梦晨 发自 凹非寺量子位 报道 | 公众号 QbitAI Windows11公布了,我还挺激动的。 毕竟是Windows嘛,运行久了总会出问题,反正要重装系统,不如干脆装个新的。 可是一运行微软给的测试工具,啊这,怎么我的电脑还…