零基础入门数据挖掘-心跳信号分类预测

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_signalslabel

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()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值