第五周学习笔记-如何用MATLAB读取ECG心电文件
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中一个心电记录由三个文件组成:
(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.继续由宏宇师兄安排下周的算法进度