第五周学习笔记-如何用MATLAB读取ECG心电文件

2019-03-29  本文已影响0人  田心雨zoie


K-means、PCA、Navie Bayes

1.Navie Bayes

朴素贝叶斯是基于在数学理论上的高概率分类方法。朴素贝叶斯比一些算法,比如说KNN、决策树等算法,训练更快也更容易建立。通常使用朴素贝叶斯作为基本分类器。

2.K-means

3.PCA

PCA是数据降维的其中一种用法也是最主要的用法。降维能够使得在数据处理中数据变得更容易使用,并且往往能够减少数据中的噪声,数据之间的关系也更加明了。所以降维一般用来对数据进行预处理,数据使用之前的数据清洗工作。

PCA能够在数据中识别出主要的数据特征。

尝试使用WFDB读取ECG图像

《cardiologist》文献中说到,之前对于在ECG 上的研究主要的数据来源是MIT-BIH。

通过在CSDN上查找如何读取ECG 文件的博客https://blog.csdn.net/chenyusiyuan/article/details/2040234

      首先,如果是对ECG心电信号进行观察、分析和诊断使用的话,有两个方法:

(1)    从MIT-BIH数据库下载

            MIT-BIH 上使用的是matlab 中的WFDB读取ECG 文件

(2)    用专门的Matlab心电数据读取程序

  MIT-BIH中一个心电记录由三个文件组成:

(1)头文件[.hea],存储方式ASCII字符

(2)数据文件[.dat],按二进制存储,每三个字节存储两个数,一个数12bit。

(3)注释文件[.atr],按二进制存储。

由于第二种方法的源代码已经失效了,采取第一种读取方法,先使用WFDB读取:       

    安装使用WFDB:

注意:官网上的这段下载代码在MATLAB中直接复制粘贴运行会报错,所以在CSDN网站上重新找到了下载代码:[old_path]=which('rdsamp');if(~isempty(old_path)) rmpath(old_path(1:end-8)); endwfdb_url='http://physionet.org/physiotools/matlab/wfdb-app-matlab/wfdb-app-toolbox-0-9-3.zip';[filestr,status] = urlwrite(wfdb_url,'wfdb-app-toolbox-0-9-3.zip');unzip('wfdb-app-toolbox-0-9-3.zip');cd mcodeaddpath(pwd);savepath

测试WFDB

        命令框中输入wfdbdemo

测试结果:

  实验

在MIT-BIH官网上下载一些ECG文件,首先了解到rdsamp()函数,

        [signal,Fs,tm]=rdsamp(recordName,signaList,N,N0,rawUnits,highResolution)

signal(必选):N×M

Fs(可选):记录中所有信号的采样频率(Hz)。1×M

tm(可选):代表采样间隔。N×1

recorName(必需):指定WFDB路径或当前目录中记录名称的字符串。

signalList(可选):一个Mx1整数数组。只读取signalList中指定的信号(列)(默认:读取所有信号)。

 N(可选):指定停止读取记录文件的样本编号的1x1整数(默认读取所有样本= N)。

 N0(可选):指定开始读取记录文件的样本编号的1x1整数(默认值1 =第一个样本)。

[tm,data]=rdsamp('mimicdb/055/055',[],5000);//读取所有列,每列5000个数据,tm为时间

[tm,data]=rdsamp('mimicdb/055/055',1,5000);//读取第1列,读取长度为5000个数据

[tm,data]=rdsamp('mimicdb/055/055',[1;2],5000);//读取第1和2列,每列读取长度为5000个数据

输出如下的波形:

将图片放大看之后可以看出它是心电信号。

      按照计划是继续读取论文中所提供测试集数据,但是论文中的ecg文件MATLAB读不出来,MATLAB中所要求的是edf格式的ecg文件,而文献中提供的是.ecg文件。不过,后期找到了应该可以将.ecg文件转化成可以MATLAB处理的矩阵模式。接下来几天再试试这个方法可不可以。

再读《cardiologist》

论文的研究背景,问题导向也就是现有的算法仍然存在着潜在的误诊机率。

前期的研究存在的问题等等。


从下面的截图可以看出,该 DNN算法在12种心律问题上的诊断准确度、专业度、诊断敏感度都优于 六位心脏疾病专家的平均诊断。

并且该DNN算法,相较于之前的算法来说,能够直接以原始的ECG数据输入,免除了特征提取,特征选择,特征分类等问题。也不需要像以前一样的数据预处理,比如说傅里叶变换小波变换。

  实验数据的处理方面,将可穿戴的设备收集到的数据,分成两部分,一部分为sequence level 另一部分为set level。

  首先用DNN与gold standard cardiologist consensus committee 的诊断相比较,再次与六心脏疾病专家的诊断均值相比较。

    在应用方面,下图指出,如果有足够多的数据用来作为DNN算法的训练集,该模型还能学习更多的特征,诊断更多的模型。

DNN模型:

    模型的学习率设置,

由于论文整体还把握不到位,所以下周

                                                            1.暂定将DNN模型中不懂的比如说ReLU了解一遍

                                                             2.继续读取ECG数据

                                                             3.继续由宏宇师兄安排下周的算法进度

上一篇 下一篇

猜你喜欢

热点阅读