这篇文章展示的是基于逻辑回归的隐马尔可夫模型(Logistic regression based hidden semi-Markovmodel (HSMM))心音信号切分方法。
参考文章可以到文末查看,这仅仅用于学习交流,如有侵权,马上删除。

简介

心音信号的切分是自动分析的第一步。
精确定位S1和S2的前提是先定位收缩区和舒张区。
除了S1和S2外,还可能存在S3(third heart sound),S4心音(fourth heart sound),收缩期射血卡嗒音(systolic ejection click),心缩中期敲击声(mid-systolic click),舒张的声音或二尖瓣开瓣音(diastolic sound or opening snap),如果还存在心脏杂音,那么在有噪声的情况下对于S1和S2的定位就很难。

四类心音切分方法:

  • Envelope-based methods
  • Feature-based methods
  • Machine learning approaches
  • Hidden Markov model (HMM)-based methods

实验方法

心音数据

如下图,心音数据训练集和测试集的划分。对数据进行了一些人工处理,作者在进行人工标志时把是在分辨不出来的去掉了,如Training-a中17个去掉了,还把每个数据库中每一个样本的最小,最大和中位数都给出了,另外统计了每个数据库中实际使用的有多少次心跳。

评估方法

使用{x1, x2, … , xi, … , xN}表示标注的4个心音状态的位置。
一个容忍参数 δ 用于决定TP(true positive),FP(false positive)和FN(false negative)。
对于当前心音信号状态应该出现在区间xi−δ≤stateonsets≤xi+δxi−δ≤stateonsets≤xi+δ x_i − δ \le state onsets \le x_i + δ ,不应该出现在区间
xi+δ≤stateonsets≤xi+1−δxi+δ≤stateonsets≤xi+1−δx_i + δ\le state onsets \le x_{i+1} - δ。N1和N2用来表示落在这两个区间的数量。

  • TP,如果N1>0N1>0N_1 \gt 0, TP=TP+1TP=TP+1TP = TP+1,表示在一个期望的区域出现一个期待望的结果。
  • FP,如果N1>0N1>0N_1 \gt 0,FP=FP+1FP=FP+1FP= FP+1,表示在期望的区间有超过一个被切分发生;如果N2>0N2>0N_2 \gt 0, FP=FP+N2FP=FP+N2FP=FP+N_2表示在不期待的区间有错误的切分发生。
  • FN,如果N1=0N1=0N_1= 0, FN=FN+1FN=FN+1FN = FN+1,表示在期望的区间缺失了一个切分状态。

The metrics of sensitivity (Se, or recall), positive predictivity (P+, or precision), accuracy (Acc) and F1 measure are defined as

Se=TPTP+FN×100%Se=TPTP+FN×100%

Se=\frac{TP}{TP+FN}\times100 \%

P+=TPTP+FP×100%P+=TPTP+FP×100%

P_+=\frac{TP}{TP+FP}\times100 \%

Acc=TPTP+FP+FN×100%Acc=TPTP+FP+FN×100%

Acc=\frac{TP}{TP+FP+FN}\times100 \%

F1=2×Se×P+Se+P+×100%F1=2×Se×P+Se+P+×100%

F_1=\frac{2 \times Se \times P_+}{Se + P_+}\times100 \%

依靠ECG给PCG做标注

如果采集了ECG,使用ECG是很容易确定心音不同的状态。虽然数据库a同时给出了ECG信号,但是ECG的R peak and end T wave是没有给出来。为了确定这两个地方的位置,对于R peak 和 end T wave,作者分别使用了4中不同的方法去确定。确定这两个位置之后,在通过他们与PCG中S1和S2的关系去给每个样本做标记。

HSMM-based heart sound segmentation algorithm

A standard HMM (i.e. H = (A, B,Pi)) plus a probability model of the time remaining in each heart sound state, i.e. H = (A, B,Pi, p).
A is the transmission matrix of the four heart sound states;
B is the observation distribution matrix;
Pi is the initial heart sound state distribution;
p is the probability density function of the time expected to remain in each heart sound state.

该方法的好处:
(1) it uses a logistic regression derived observation function for B matrix to replace the Gaussian distribution function;
(2) it extends the Viterbi algorithm to predict the possible state durations beyond the beginning and end of the heart sound signal, to give the state durations at the boundary points; and
(3) it uses a combination of four envelope features(homomorphic envelope, Hilbert envelope, wavelet envelope and power spectral density envelope) of the heart sounds for the model inputs.

初始化输入
(1) The transmission probabilities in matrix A are initialized to 0.
(2) The initial state distribution probabilities in matrix were set to be equal to 0.25 for all four states.
(3) The matrix B and p were trained by running the modified Viterbi algorithm over the training data.The four envelope feature were calculated and normalized(by subtracting the mean and dividing by the standard deviation of each recording), and then down-sampled to 50Hz by a poly phase anti-aliasing filter.
(4)these envelope feature vectors and the corresponding reference annotation of the four heart sound states were inputed into the HSMM model for training.

result

训练组的结果评估

测试组的结果评估

忍耐度对F1的影响

讨论

the HSMM-based algorithm utilized the inherent probabilistic estimation of the duration-dependent Markov model,
as well as combined the logistic regression for emission probability estimation and a modified Viterbi algorithm.

Figure 3 shows several successful examples of automatic heart sound segmentation.

Figure 4 shows typical errors.

不足
(1)无法手动辨别的数据没有用于实验的评估。
(2)没有和其他算法做对比,因为在这篇文章之前没有研究人员使用这个database。
(3)存在检测错误的情况,尤其是在 long heart cycles and irregular sinus rhythm。

参考

Liu, Chengyu, David Springer, and Gari D. Clifford. “Performance of an open-source heart sound segmentation algorithm on eight independent databases.” Physiological measurement 38.8 (2017): 1730.

验证基于逻辑回归的隐马尔可夫模型的心音信号切分算法(literature study)相关推荐

  1. 大道至简 —— 条件随机场与逻辑回归、隐马尔科夫模型的比较

    前言 大道至简 -- 白话条件随机场Conditional Random Fields 上一节我们讲到,为了建一个条件随机场,我们首先要定义一个特征函数集,每个特征函数都以整个句子,当前位置,位置和的 ...

  2. 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列

    人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型 人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态 ...

  3. 隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)

    隐马尔科夫模型(前向后向算法.鲍姆-韦尔奇算法.维特比算法) 概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概 ...

  4. 【机器学习】【隐马尔可夫模型-3】后向算法:算法详解+示例讲解+Python实现

    0.前排提示 csdn有些数学公式编辑不出来,所以本博用容易书写的表达式来表示专业数学公式,如: (1)  在本博客中用α<T>(i)来表示 (2)在本博客中用[i=1, N]∑来表示 注 ...

  5. 机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)...

    概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概率相关关系.根据边的性质不同,可以将概率图模型分为两类:一类是 ...

  6. 机器学习算法拾遗:(七)隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)

    1.隐马尔科夫模型HMM 隐马尔科夫模型的图结构如下 从上图中主要有两个信息:一是观测变量xi 仅仅与与之对应的状态变量yi 有关:二是当前的状态变量yi 仅仅与它的前一个状态变量yi-1 有关. 隐 ...

  7. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  8. 机器学习_5.隐马尔可夫模型的典型问题和算法

    三个典型问题 1.已知模型参数,计算某一给定可观察状态序列的概率 已经有一个特定的隐马尔科夫模型 λ 和一个可观察状态序列集.我们也许想知道在所有可能的隐藏状态序列下,给定的可观察状态序列的概率.当给 ...

  9. 隐马尔科夫模型HMM之前后向算法Python代码实现,包括2个优化版本

    ☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 (3)HMM学习问题:Baum-Welch算法 (4)  HMM预测问题:维特比算法 本篇算法原理分析 ...

最新文章

  1. JDBC数据源连接池(1)---DBCP
  2. 解决Failed to execute goal org.apache.maven.plugins
  3. KubeEdge — Overview
  4. 设计模式:单例模式之懒汉式
  5. 整理了7道Python函数的练习题,希望对你学习函数有帮助
  6. JSTL EL对Map集合的支持
  7. 微型计算机储存信息的基本单位是什么,16.磁盘存储器存、取信息的最基本单位是...
  8. iis php网站500错误原因_因为曾经错误安装过PHP5.2而导致IIS7无法正常工作,显示500错误提示,大家帮忙看看!...
  9. 解决安装SQL Server 2005开发版时,出现“SQL Server 服务无法启动 ”点击重试或取消的解决方法
  10. 18.用两个栈实现队列[2StacksToImplementQueue]
  11. java 实现回收站功能,shell编程之实现windows回收站功能分享
  12. fiddler设置中文版本_Python3.x+Fiddler 抓取 APP 数据
  13. gperftools
  14. SCDPM 2012R2之保护SQL SERVER
  15. Android成长的幕后推手:工程师鲁宾
  16. js中JSON的使用
  17. python构建网站flask_某课Python Flask实现构建视频网站
  18. 饥荒专用服务器全图显示代码,《饥荒》代码大全 控制台代码使用方法及寻找代码方法...
  19. AI教程之谷歌的新 Imagen 视频从文本生成视频
  20. 坚果云服务器地址,坚果云第三方应用授权WebDAV开启方法

热门文章

  1. 使用library(tseries)命令,报错“Error in library(tseries) : there is no package called ‘tseries’
  2. 全球智能网联汽车出货量预计
  3. 5种数据分析常用的思维方法!
  4. 决策树和 K 近邻分类
  5. php 做ui,如何制作ui
  6. 小波系数(转自showtime_97)
  7. Web课程设计之学生成绩管理系统
  8. 硬件工程师和软件工程师哪个更有前途?
  9. 计算机硬件和软件之间的区别
  10. 红米note5刷android,红米note5刷魔趣Android10上手体验!这速度,我爱了!