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

心跳信号分类预测

  • 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)

零基础入门数据挖掘-心跳信号分类预测_第1张图片

3、具体流程

3.1 在天池官网下载数据

在这里插入图片描述
下载好的数据后有三个字段 id ,heartbeat_signalslabel

3.2 绘制前10个id的图像

由于心跳信号序列是一大串的数字,我们本身看不出什么信息。首先第一个想法就是把图像绘制出来。
第一张图
零基础入门数据挖掘-心跳信号分类预测_第2张图片
第二张图
零基础入门数据挖掘-心跳信号分类预测_第3张图片
第三张图
零基础入门数据挖掘-心跳信号分类预测_第4张图片
前10张图
零基础入门数据挖掘-心跳信号分类预测_第5张图片
绘图代码如下:

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
零基础入门数据挖掘-心跳信号分类预测_第6张图片
lable=1
零基础入门数据挖掘-心跳信号分类预测_第7张图片
lable=2
零基础入门数据挖掘-心跳信号分类预测_第8张图片
lable=3
零基础入门数据挖掘-心跳信号分类预测_第9张图片

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()

你可能感兴趣的:(机器学习,机器学习)