
介绍一种基于住院患者心电图及临床特征开发的机器学习模型,用于诊断反射性晕厥。
入选2018年6月20日至2022年5月11日于天津医科大学第二医院心脏科住院治疗的晕厥患者,经过临床评估和调查研究获得相关基线资料。确定了晕厥患者的15个特征,并进行特征排序。采用不同的机器学习方法构建反射性晕厥的诊断模型,如Logistic回归分析、感知机、支持向量机、决策树、随机森林和K最近邻算法等方法。
最终入选410例患者,首次晕厥事件的年龄(64.5±14.6)岁,其中男236例(236/410,57.6%),65例患者确诊为反射性晕厥。纳入特征重要性排序结果位于前4位的特征构建模型,随机森林模型诊断反射性晕厥的性能最佳,曲线下面积为0.644,精确率(Precision)、召回率(Recall)和F1得分(F1 score)分别为0.794、0.849和0.791。
人工智能算法能够识别反射性晕厥,可作为一种经济有效的筛查工具。






版权归中华医学会所有。
未经授权,不得转载、摘编本刊文章,不得使用本刊的版式设计。
除非特别声明,本刊刊出的所有文章不代表中华医学会和本刊编委会的观点。
晕厥为短暂性全脑血液低灌注导致的短暂意识丧失,其特点为发生迅速、短暂性、自限性并且能够完全恢复[1]。反射性晕厥(神经介导性晕厥)是由交感或迷走神经反射异常引起的短暂意识丧失,临床分类包括血管迷走性晕厥(vasovagal syncope,VVS)、情境性晕厥、颈动脉窦综合征和不典型反射性晕厥[1,2]。反射性晕厥是最常见的晕厥类型,可能与主要结局风险增加无关,但会导致身体损伤和生活质量下降[2,3]。人群晕厥发病率为19%~41%,急诊就诊的晕厥患者中约30%接受住院治疗,早期诊断及危险分层尤为重要,然而大型荟萃分析显示约1/3患者出院时未明确诊断[2,4,5]。心电图作为临床上常见和广泛应用的检查方法之一,具有无创、快速、方便、价格低等优点,可为临床医生提供晕厥病因相关的潜在及特定信息;心电图信息结合患者特征更符合临床实际,可能有助于进一步辅助诊断。人工智能在心血管医学的各个领域得到了广泛应用,机器学习算法亦可为晕厥提供临床决策支持[6,7]。本研究旨在通过住院患者临床特征和心电图参数构建机器学习模型以诊断反射性晕厥,为临床诊疗提供新的参考。
本研究是一项前瞻性、单中心队列研究。入选2018年6月20日至2022年5月11日于天津医科大学第二医院心脏科住院治疗的晕厥患者。纳入标准:①年龄≥18岁;②发作过程符合晕厥特征。排除标准:①无法给予书面或口头的知情同意;②其他原因导致的意识丧失,例如眩晕、昏迷、休克、癫痫发作、头部受伤、短暂性脑缺血发作、药物毒性、低血糖等。
本研究是中国晕厥前瞻性多中心注册研究[已通过北京大学人民医院伦理委员会批准(批准号:2018PHB044-01)]的一部分,并获得主要研究者的知情同意。所有入组患者均签署了知情同意书。
对所有患者进行了详细的晕厥相关评估,包括现病史、既往史、体格检查及12导联心电图检查。询问患者本人有关晕厥发作诱因及相关症状的信息,由接诊医生酌情进行相关实验室检查、经胸超声心动图、动态心电图和冠状动脉造影等。实验室检查及12导联心电图(FX-7402自动分析心电图机,日本福田公司)采集时间均为住院后2 h内,其他辅助检查均于该次住院期间完成。反射性晕厥的诊断标准①VVS:发病特点多有明显诱因,如站立、坐位或情绪刺激、疼痛、医疗操作或晕血等;典型症状为出汗、皮肤发热、恶心、脸色苍白;发作时伴低血压和/或心动过缓;意识恢复后常伴疲劳感。②情境性晕厥:与特定的动作有关,如咳嗽、喷嚏、吞咽或排便、排尿、运动后、大笑、吹奏管乐器等。③颈动脉窦综合征:转头动作、局部肿瘤、剃须、衣领过紧等造成颈动脉窦受压。④不典型反射性晕厥[1,2]。搜集所有患者的晕厥发作诱因、心电图参数、实验室参数,以及首发年龄、性别、血压、合并症等基本临床特征。
本研究开发了多种机器学习算法诊断反射性晕厥,包括Logistic回归分析、感知机、支持向量机、决策树、随机森林和K最近邻算法。
(1)数据集:在反射性晕厥的诊断任务中,受试者被诊断为反射性晕厥或其他类型的晕厥,分别用0和1表示。
(2)特征选择:特征选择可排除机器学习任务中不相关或冗余的特征,以提高模型的精确性和泛化能力。本研究纳入所有可用的心电图参数,探讨心电图的诊断性能;纳入其他具有统计学差异的特征。最终确定了包括心电图参数、实验室检查结果、首发年龄等在内的15个特征,并采用基于随机森林的特征重要性排序方法对特征进行排序(图1)。随后,纳入不同数量的特征构建机器学习模型。


重要性评分基于变量对模型性能的贡献。NT-proBNP为N末端脑钠肽前体,age为年龄,cTnI为心肌肌钙蛋白I,CK-MB为肌酸激酶同工酶,QT为QT间期,PR为PR间期,RR为RR间期,QTc为校正的QT间期,axis为QRS波电轴,HR为心率,QRS为QRS时限,post-exercise为运动后,standing为站立,GI stimulation为胃肠道刺激,others为其他诱因
(3)诊断方法:本研究采用多种基于机器学习的方法构建反射性晕厥的诊断模型。机器学习方法描述如下。①Logistic回归分析:是一种二进制分类的机器学习方法,采用最大似然估计法,假设数据符合Logistic分布来估计参数。本研究中,Logistic回归分析的惩罚项设置为"l2",停止训练的标准设置为"1e-4",优化算法设置为"lbfgs",最大迭代次数设置为"100",其他参数保持默认设置。②感知机:是一种二元线性分类模型,输入特征向量,输出实例类别,可通过划分超平面实现训练数据的线性分割。在感知机之后加入校准分类器,可得诊断结果的概率。本研究中,感知机的最大迭代次数设置为"1 000",停止训练的标准设置为"1e-3",学习率设置为"1",其他参数保持默认设置。此外,校准分类器中的方法设置为等张性。③支持向量机:是一种二元分类方法,学习策略是区间最大化。本研究中,支持向量机中的惩罚系数C设置为"1",核函数设置为"rbf",核函数系数设置为"scale",停止训练的标准设置为"1e-3",概率输出设置为"True",其他参数保持默认设置。④决策树:是一种基于数据属性的树状结构决策模型,最终决策来源于分类任务中属性的连续确定。本研究中,决策树中的判据设置为"熵",分离器设置为"随机",最大深度设置为"3",随机状态设置为"0",其他参数保持默认设置。⑤随机森林:是一种通过多个决策树进行训练和诊断的分类器。本研究中,随机森林的"n_estimators"设置为"108",判据设置为"熵",最大深度设置为"5",随机状态设置为"0","n_jobs"设置为"2",最大叶节点设置为"5",最大样本量设置为"226",其他参数保持默认设置。⑥K最近邻算法:是一种度量不同特征值距离的分类器。通过判断特征空间中样本类别的相似性获得诊断结果。本研究中,K值设置为"3",权重设置为"距离",叶节点设置为"30",距离采用"欧式距离",其他参数保持默认设置。
(4)训练方法和评价指标:数据集分为6个部分,5个用于交叉验证,1个用于检验模型。采用5折交叉验证对算法进行训练和验证。
本研究以受试者工作特征-曲线下面积(receiver operator characteristic-area under the curve,ROC-AUC)为主要评价指标。其他度量指标包括精确率(Precision)、召回率(Recall)和F1得分(F1 score)(表2)。指标计算:真阳性(true positive,TP)、假阳性(false positive,FP)、假阴性(false negative,FN)分别为事件数量。计算公式:,
,
。ROC-AUC评价分类性能:AUC越接近1.0,分类结果的真实性越高;当AUC=0.5时,真实性最低,无应用价值。

排序位于前5位的特征和所有特征的测试集结果
排序位于前5位的特征和所有特征的测试集结果
特征 | 模型 | Precision | Recall | F1 score | ROC-AUC |
---|---|---|---|---|---|
Top1 | 决策树 | 0.707 | 0.841 | 0.768 | 0.544 |
K最近邻算法 | 0.760 | 0.754 | 0.756 | 0.528 | |
Logistic回归 | 0.694 | 0.707 | 0.841 | 0.768 | |
感知机 | 0.693 | 0.705 | 0.829 | 0.762 | |
随机森林 | 0.707 | 0.841 | 0.768 | 0.587 | |
支持向量机 | 0.707 | 0.841 | 0.768 | 0.412 | |
Top2 | 决策树 | 0.707 | 0.841 | 0.768 | 0.547 |
K最近邻算法 | 0.789 | 0.820 | 0.799 | 0.590 | |
Logistic回归 | 0.655 | 0.707 | 0.841 | 0.768 | |
感知机 | 0.668 | 0.705 | 0.832 | 0.763 | |
随机森林 | 0.752 | 0.841 | 0.777 | 0.655 | |
支持向量机 | 0.707 | 0.841 | 0.768 | 0.376 | |
Top3 | 决策树 | 0.707 | 0.841 | 0.768 | 0.638 |
K最近邻算法 | 0.789 | 0.820 | 0.799 | 0.591 | |
Logistic回归 | 0.651 | 0.706 | 0.838 | 0.766 | |
感知机 | 0.676 | 0.765 | 0.712 | 0.696 | |
随机森林 | 0.774 | 0.846 | 0.781 | 0.639 | |
支持向量机 | 0.636 | 0.894 | 0.743 | 0.379 | |
Top4 | 决策树 | 0.794 | 0.846 | 0.789 | 0.560 |
K最近邻算法 | 0.813 | 0.846 | 0.814 | 0.589 | |
Logistic回归 | 0.741 | 0.843 | 0.774 | 0.687 | |
感知机 | 0.704 | 0.820 | 0.758 | 0.666 | |
随机森林 | 0.794 | 0.849 | 0.791 | 0.644 | |
支持向量机 | 0.707 | 0.841 | 0.768 | 0.424 | |
Top5 | 决策树 | 0.723 | 0.831 | 0.768 | 0.613 |
K最近邻算法 | 0.771 | 0.777 | 0.772 | 0.562 | |
Logistic回归 | 0.683 | 0.777 | 0.841 | 0.786 | |
感知机 | 0.654 | 0.824 | 0.723 | 0.661 | |
随机森林 | 0.774 | 0.846 | 0.781 | 0.660 | |
支持向量机 | 0.636 | 0.894 | 0.743 | 0.443 | |
All | 决策树 | 0.812 | 0.846 | 0.794 | 0.701 |
K最近邻算法 | 0.754 | 0.791 | 0.769 | 0.502 | |
Logistic回归 | 0.649 | 0.735 | 0.826 | 0.769 | |
感知机 | 0.636 | 0.829 | 0.719 | 0.641 | |
随机森林 | 0.707 | 0.841 | 0.768 | 0.752 | |
支持向量机 | 0.638 | 0.894 | 0.745 | 0.430 |
注:Top1为特征排序结果位于首位的特征[N末端脑钠肽前体(NT-proBNP)],Top2为特征排序结果位于前2位的特征(NT-proBNP、年龄),Top3为特征排序结果位于前3位的特征[NT-proBNP、年龄、心肌肌钙蛋白I(cTnI)],Top4为特征排序结果位于前4位的特征[NT-proBNP、年龄、cTnI、肌酸激酶同工酶(CK-MB)],Top5为特征排序结果位于前5位的特征(NT-proBNP、年龄、cTnI、CK-MB、QT间期),All为纳入特征排序的所有特征,Precision为精确率,Recall为召回率,F1 score为F1得分,ROC-AUC为受试者工作特征-曲线下面积
机器学习建模采用Python 3.6软件,统计学分析采用SPSS 26.0软件。符合正态分布的计量资料以±s表示,不符合正态分布的计量资料以 M(Q1,Q3)表示。记数资料以百分比表示。符合正态分布的计量资料两组间比较采用t检验,不符合正态分布的数据采用非参检验,频率比较采用χ2检验。AUC评估诊断的准确性。P<0.05为差异具有统计学意义。
本研究最终纳入410例患者,首次晕厥事件的年龄(64.5±14.6)岁,年龄范围12~92岁,其中男236例(236/410,57.6%),65例患者确诊为反射性晕厥。研究人群分为反射性晕厥组及非反射性晕厥组,两组患者的基线特征见表1。与非反射性晕厥组相比,反射性晕厥组晕厥事件首发年龄更小[(57.6±16.5)岁对(65.8±13.8)岁,P<0.001]、无合并症(18.5%对7.5%,P=0.005)比例更高,差异具有统计学意义;两组性别、血压比较差异无统计学意义(P>0.05)。晕厥发作诱因中,与非反射性晕厥组相比反射性晕厥组长时间站立(10.8%对1.4%,P<0.001)、情绪性刺激(9.2%对2.0%,P=0.002)、胃肠道刺激(18.5%对5.5%,P<0.001)、咳嗽(6.2%对1.4%,P=0.039)发生率更高,差异均具有统计学意义。实验室检查中,反射性晕厥组患者的心肌肌钙蛋白I(cardiac troponin I,cTnI)、N末端脑钠肽前体(N-terminal pro-B-type natriuretic peptide,NT-proBNP)及肌酸激酶同工酶(creatine kinase-MB,CK-MB)均显著降低,差异具有统计学意义(均P<0.05);仅肌酸激酶(creatine kinase,CK)中位数水平略高,差异无统计学意义(75.0对73.8,P=0.485)。心电图参数中,除QRS轴外差异均无统计学意义(P>0.05)。

反射性晕厥组与非反射性晕厥组患者的基线特征比较
反射性晕厥组与非反射性晕厥组患者的基线特征比较
项目 | 反射性晕厥组 | 非反射性晕厥组 | P值 | |
---|---|---|---|---|
例数 | 65 | 345 | ||
首发年龄(岁,![]() | 57.6±16.5 | 65.8±13.8 | <0.001a | |
男[例(%)] | 42(64.6) | 194(56.2) | 0.210 | |
收缩压(mmHg,![]() | 133.4±23.1 | 131.8±23.9 | 0.624 | |
舒张压(mmHg,![]() | 79.3±14.0 | 78.2±34.6 | 0.812 | |
合并症[例(%)] | ||||
高血压 | 33(50.8) | 192(55.7) | 0.468 | |
冠心病 | 22(33.8) | 161(46.7) | 0.056 | |
糖尿病 | 9(13.8) | 81(23.5) | 0.085 | |
无合并症 | 12(18.5) | 26(7.5) | 0.005a | |
其他合并症 | 28(43.1) | 152(44.1) | 0.884 | |
晕厥发作诱因[例(%)] | ||||
长时间站立 | 7(10.8) | 5(1.4) | <0.001a | |
体位改变 | 3(4.6) | 12(3.5) | 0.716 | |
情绪性(疼痛、恐惧) | 6(9.2) | 7(2.0) | 0.002a | |
胃肠道刺激 | 12(18.5) | 19(5.5) | <0.001a | |
运动后 | 2(3.1) | 14(4.1) | 1.000 | |
环境闷热 | 1(1.5) | 3(0.9) | 0.500 | |
排尿 | 3(4.6) | 4(1.2) | 0.083 | |
咳嗽 | 4(6.2) | 5(1.4) | 0.039a | |
其他诱因 | 4(6.2) | 9(2.6) | 0.135 | |
心电图参数[M(Q1,Q3)] | ||||
心率(次/min) | 68.0(62.0,77.5) | 71.0(61.0,85.0) | 0.856 | |
RR间期(ms) | 856.0(765.0,954.5) | 842.0(702.0,970.5) | 0.797 | |
PR间期(ms) | 167.0(149.5,175.0) | 166.0(149.5,190.0) | 0.217 | |
QRS时限(ms) | 98.0(93.0,104.0) | 100.0(92.0,111.0) | 0.243 | |
QT间期(ms) | 391.0(369.0,426.5) | 400.0(375.0,444.5) | 0.139 | |
QTc间期(ms) | 427.0(417.0,446.5) | 439.0(420.5,465.5) | 0.046a | |
QRS轴(°) | 28.0(6.0,49.5) | 27.0(0,53.5) | 0.930 | |
实验室检查[M(Q1,Q3)] | ||||
cTnI(ng/L) | 0.011(0.002,0.020) | 0.015(0.010,0.060) | <0.001a | |
NT-proBNP(ng/L) | 111.0(38.8,255.8) | 344.2(84.0,1 265.0) | <0.001a | |
CK(U/L) | 75.0(56.8,96.6) | 73.8(51.2,133.3) | 0.485 | |
CK-MB(U/L) | 9.7(7.0,15.4) | 11.6(8.4,18.0) | 0.011a |
注:QTc间期为校正的QT间期,cTnI为心肌肌钙蛋白I,NT-proBNP为N末端脑钠肽前体,CK为肌酸激酶,CK-MB为肌酸激酶同工酶;1 mmHg=0.133 kPa,a为差异具有统计学意义
(1)特征排序:晕厥患者的特征重要性评分见图1,为本研究纳入的15个特征依据评分降序排列。x轴为特征重要性评分分数,y轴为特征。重要性评分分数从0.11降至0.06,然后在第15个特征时接近0。在此模型中权重最高的变量是NT-proBNP,其次是年龄。
(2)分类结果:当重要性评分较高的特征被纳入测试集时,算法性能更佳;因此,将排序位于前5位的特征和所有特征纳入模型运算(表2)。不同模型的ROC曲线和AUC如图2所示。纳入前4位特征的模型诊断性能最佳,包括NT-proBNP、年龄、cTnI和CK-MB。其中,Precision为0.794,Recall为0.849,F1 score为0.791,AUC为0.644。


受试者工作特征(ROC)曲线纳入的特征数如标题所示,不同模型的ROC曲线以不同的彩色线表示。五折交叉验证的平均(Mean)AUC见ROC曲线右下角。DT为决策树,KNN为K最近邻,LR为Logistic回归,PPN为感知机,RF为随机森林,SVM为支持向量机,AUC为曲线下面积,NT-proBNP为N末端脑钠肽前体,cTnI为心肌肌钙蛋白I,CK-MB为肌酸激酶同工酶
本研究应用基于住院患者临床特征和心电图参数的人工智能模型识别反射性晕厥,主要发现:①最佳机器学习模型为随机森林算法,Precision为0.794,Recall为0.849,F1 score为0.791,AUC为0.644。②根据统计学差异及算法特征排序,晕厥首次发作年龄、实验室检查可能与晕厥分类相关,其中,NT-proBNP为最具诊断代表性的指标,其次为年龄、cTnI和CK-MB,与既往研究结果相符[8,9]。
反射性晕厥低危患者不需住院治疗,但晕厥的诊断较为复杂,常导致不必要的住院事件,晕厥患者的诊断与管理尚需优化。反射性晕厥与自主神经功能衰竭的临床表现常有相同之处,会造成鉴别诊断困难。尽管反射性晕厥的危险性低于心律失常或器质性心血管病引起的心源性晕厥,但反复和不可预测的发作可能致残[10]。de Jong等[11]的前瞻性队列研究证实,病史采集的基础是晕厥患者最重要的诊断工具,诊断准确率可达94.7%,直立倾斜试验阳性结果结合临床有助于诊断反射性晕厥,但准确率仅为60%左右,阴性结果亦不能排除反射性晕厥[12,13]。本研究基于患者易于获取的临床特征及心电图,最终确定特征重要性排序结果中前4位的特征用于算法构建,利用人工智能算法识别反射性晕厥患者,可将该模型应用于临床电子系统,提高诊断效率,避免过度检查,减轻患者经济负担。
随着计算能力的进步,医疗数据分析及心血管相关诊断已成为医疗机构研究的主要研究领域。此前,已有国外学者探索人工智能算法应用于识别晕厥患者的可行性。Schang等[14]及Khodor等[15]开发了基于直立倾斜试验数据的支持向量机模型对晕厥患者进行早期识别。为有效识别反射性晕厥,2021年Hussain等[16]利用直立倾斜试验数据开发了Logistic回归算法,AUC可达0.98。但以上研究仅限于优化直立倾斜试验结果,未与患者临床特征结合,尚不能保证临床诊断的准确性。Costantino等[17]开发了人工神经网络,通过分析3项前瞻性研究1 844名受试者的数据来识别晕厥后的短期不良事件,最佳模型性能灵敏度为100%,特异性为79%,AUC为0.78。本研究采用的机器学习方法所需计算量小,可清晰表达属性,适用于分类任务;其中,Logistic回归分析和感知机等参数模型能够在数据量不大的情况下实现对目标任务的快速学习和训练,决策树、支持向量机、K最近邻算法等非参数模型对目标函数形式不做过多的假设,而是通过训练数据拟合出某种形式的函数,对于训练样本数据具有良好的拟合性。此外,除了扩展既往的线性及非线性算法,我们通过机器学习算法对纳入参数与任务的相关性进行排序,这种排序法不仅可以有效改善模型性能,还可以增强模型的可解释性,可能有助于支持医生在临床环境中进行精准决策。
本研究存在以下局限性:①样本量少,结果可能存在一定偏倚;研究存在人群异质性,算法作为均一化诊断标准,缺少个体化评估效应,算法结果有待在大规模多中心研究进行验证。②由于现实资源所限,反射性晕厥患者的诊断主要依靠病史及心血管相关检查,并未行直立倾斜试验。③为保证队列质量及研究可靠性,未设置独立外部验证集。④随机森林算法速度相对较慢,可能存在过度拟合;结果的重要特征AUC结果不佳,可能与纳入反射性晕厥患者比例较低相关。
综上所述,本研究证明了人工智能算法能够识别反射性晕厥,可作为一种经济有效的筛查工具。
中国临床试验注册中心,ChiCTR 1900024190
Chinese Clinical Trial Registry, ChiCTR 1900024190
所有作者均声明不存在利益冲突