概述
心跳信号分类预测
- 1、赛题背景
- 2、赛题数据
- 字段表
- 3、具体流程
- 3.1 在天池官网下载数据
- 3.2 绘制前10个id的图像
- 3.3 绘制每个标签的前10个图像
1、赛题背景
赛题以医疗数据挖掘为背景,要求选手使用提供的心跳信号传感器数据训练模型并完成不同心跳信号的分类的任务。为了更好的引导大家入门,还特别为本赛题定制了学习方案,其中包括数据科学库、通用流程和baseline方案学习三部分。
通过对本方案的完整学习,可以帮助掌握数据竞赛基本技能。同时我们也将提供专属的视频直播学习通道。
2、赛题数据
赛题以预测心电图心跳信号类别为任务,数据集报名后可见并可下载,该数据来自某平台心电图数据记录,总数据量超过20万,主要为1列心跳信号序列数据,其中每个样本的信号序列采样频次一致,长度相等。为了保证比赛的公平性,将会从中抽取10万条作为训练集,2万条作为测试集A,2万条作为测试集B,同时会对心跳信号类别(label)信息进行脱敏。
字段表
Field: Description
id : 为心跳信号分配的唯一标识
heartbeat_signals: 心跳信号序列
label: 心跳信号类别(0、1、2、3)
3、具体流程
3.1 在天池官网下载数据
下载好的数据后有三个字段 id ,heartbeat_signals和label
3.2 绘制前10个id的图像
由于心跳信号序列是一大串的数字,我们本身看不出什么信息。首先第一个想法就是把图像绘制出来。
第一张图
第二张图
第三张图
前10张图
绘图代码如下:
import pandas as pd
import matplotlib.pyplot as plt
def draw(data_train):
for index in range(10): # 绘制前10 条数据
# a = data_train['heartbeat_signals'] # 获取heartbeat_signals列数据
a = data_train['heartbeat_signals'].get(index) # 读取某个下标元素 (行)
b = a.split(",") # 分隔 0.9999,0.12323,0.678394 数据
square = [] # 列坐标
for i in b:
square.append(float(i))
x = [] # 行坐标
for i in range(len(b)):
x.append(i / 10.0) # 行坐标除以10
plt.plot(x, square)
# plt.savefig("C:/Users/admin/Desktop/filename.png") 绘制图像集合,并删除plt.close()
plt.savefig("C:/Users/admin/Desktop/filename" + str(index) + ".png")# 绘制分图像
plt.close()
# plt.show()
def main():
data_train = pd.read_csv("C:/Users/admin/Desktop/train1.csv") #这里数据取了前10行
# df = pd.read_csv("C:/Users/admin/Desktop/train1.csv", usecols=[2]) 读取指定列
# x = data_train[['heartbeat_signals']]
# y=data_train['heartbeat_signals'].index
# x = data_train['heartbeat_signals']
draw(data_train)
if __name__ == '__main__':
main()
取前10行的数据的代码如下:
import pandas as pd
import numpy as np
data_train = pd.read_csv("C:/Users/admin/Desktop/train.csv") # 读取训练集
data_test_A = pd.read_csv("C:/Users/admin/Desktop/testA.csv") # 读取测试集
train=data_train.head(10)
train.to_csv('C:/Users/admin/Desktop/train1.csv')
3.3 绘制每个标签的前10个图像
知道了大致的图像,还是不能查找出什么关系,我们尝试能不能看看每个label的图像有没有什么不同。
lable=0
lable=1
lable=2
lable=3
import pandas as pd
import matplotlib.pyplot as plt
def draw(data_train):
count = 0
for index in range(200):
if count == 10:
break
if data_train['label'].get(index) == 3.0:
a = data_train['heartbeat_signals'].get(index) # 读取某个下标元素
b = a.split(",")
count = count+1
square = []
for i in b:
square.append(float(i))
x = []
for i in range(len(b)):
x.append(i / 10.0)
plt.plot(x, square)
plt.savefig("C:/Users/admin/Desktop/filename.png")
#plt.savefig("C:/Users/admin/Desktop/filename" + str(index) + ".png")
#plt.close()
# plt.show()
def main():
# data_train = pd.read_csv("C:/Users/admin/Desktop/train2.csv")
data_train = pd.read_csv("C:/Users/admin/Desktop/train2.csv", usecols=[2, 3])
# df = pd.read_csv("C:/Users/admin/Desktop/train1.csv", usecols=[2]) 读取指定列
# x = data_train[['heartbeat_signals']]
# y=data_train['heartbeat_signals'].index
# x = data_train['heartbeat_signals']
draw(data_train)
if __name__ == '__main__':
main()
最后
以上就是幸福吐司为你收集整理的零基础入门数据挖掘-心跳信号分类预测1、赛题背景2、赛题数据3、具体流程的全部内容,希望文章能够帮你解决零基础入门数据挖掘-心跳信号分类预测1、赛题背景2、赛题数据3、具体流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复