基于机器学习和差值校验的识别混淆样本方法的建立及评价*

2021-02-13 12:36张金杰梁玉芳王清涛王哲冯祥韩泽文宋彪高志琪周睿首都医科大学附属北京朝阳医院检验科北京00020北京市临床检验中心北京00020内蒙古卫数数据科技有限公司呼和浩特00000内蒙古财经大学呼和浩特0005
临床检验杂志 2021年12期
关键词:阴性机器样本

张金杰,梁玉芳,王清涛,2,王哲,冯祥,韩泽文,宋彪,4,高志琪,周睿,2(.首都医科大学附属北京朝阳医院检验科,北京00020;2.北京市临床检验中心,北京00020;.内蒙古卫数数据科技有限公司,呼和浩特00000;4.内蒙古财经大学,呼和浩特0005)

实验室分析前误差会引起临床决策错误,进而引发医疗事故。常见分析前误差有患者识别错误、样本识别错误、采血管错误、标本污染、标本不完整、标本中存在干扰物质等,其中,因各种因素所致标本混淆属严重的分析前差错。1974年,首次提出差值校验(delta check,DC),通过计算同一个患者2次结果之间的差值(delta),判断标本是否发生混淆[1]。文献报道传统的DC方法主要包括经验法[2]、参考变化值法(reference change value,RCV)[3]、加权累计delta指数(weighted cumulative delta index,WCDI)[4],其目的是准确设置控制限。美国临床和实验室标准协会(Clinical and Laboratory Standards Institute, CLSI)EP33详细描述了使用RCV方法确定DC限的步骤[5]。目前传统基于统计学的DC方法由于方法本身的局限性,无法根本解决临床混淆标本假阳性或假阴性过高的问题。支持向量机(support vector machine,SVM)是机器学习的经典算法,应用于复杂数据关系下的回归和分类问题[6]。如果可以把样本的正配和错配看作SVM的二分类问题,将同一患者2次检测数据的delta值判断为正样本,不同患者数据的delta值判断为负样本,便可以实现样本数据的核查目标。本研究尝试利用患者历史对比数据,基于机器SVM算法建立一种识别临床混淆样本的高敏方法,并通过与RCV方法比较,验证该方法的临床有效性。

1 资料和方法

1.1数据收集 采集北京朝阳医院实验室信息系统(LIS)的血液学分析仪Sysmex XN-9000信息,提取2018年45万患者血常规报告结果,将前10个月的患者结果用于训练数据,后2个月的用于测试数据。数据按以下规则进行清洗:剔除同一患者前后2次结果为不同患者标识号的样本;剔除研究时段内结果少于2次的患者样本;同一患者的多次测试结果只保留前2次数据;剔除存在离群值或异常值的患者结果;将DC取值范围限定在1个月内;剔除经清洗处理后样本测试数不足2次的患者样本。

1.2数据处理 计算22个常规项目的delta绝对值,计算方式为:

△x绝对=|x1-x2|

其中,x1和x2表示某项目的前后2次数值。为尽可能涵盖临床中不同程度的错配场景,让样本的分布种类多样化,采取国际上认可的方式[2]进行数据模拟。规定匹配样本集为同一个患者的2次数据配对计算delta值;对于错配的样本集,让每一个患者的第一次数据与其他人的第二次数据随机配对计算delta值。最终的样本量为:匹配样本123 365对,标记“0”标签;不匹配样本123 365对,标记“1”标签,以此将混淆样本的检测转换为机器学习的二分类问题。分别从2组样本集中各抽取20%合并为49 346对样本作为测试集,在不同方法上进行验证。

1.3基于SVM模型的构建 数据经标准化的归一处理后,样本数量按8∶2随机划分为训练集和测试集。给定超参数,确定最优分界面[7],构建SVM模型,用GridSearchCV函数代码工具对SVM涉及的核函数kernel、C、核函数系数g超参数[8-9]进行调优,通过测试样本验证模型。

1.4利用RCV值作为DC界限方法[3]

1.4.1项目选取 按CLSI EP33[5]标准推荐的方法,结合文献报道,分析前样本相关错误识别选择根据个体指数(index of individuality)=CVi/CVg计算。选择部分临床检测项目作为研究对象开展实验,见表1。

表1 各项目指标特征

1.5评估指标 通过以下指标对模型性能进行评估:统计真阳性(true positive,TP)、真阴性(true negative,TN)、假阳性(false positive,FP)、假阴性(false negative,FN)4个数量。再计算真阳性率(true positive rate,TPR)=TP/(TP+FN)×100%;真阴性率(true negative rate,TNR)=TN/(TN+FP)×100%;假阳性率(false positive rate,FPR)=FP/(FP+TN)×100%;假阴性率(false negative rate,FNR)=FN/(FN+TP)×100%;准确率(accuracy rate,ACC)=(TP+TN)/(TP+TN+FP+FN)×100%;ROC曲线以及ROC曲线下的面积(AUC)。见图1。

图1 实验流程

1.6统计学分析 使用python3.7实现,采用统计的基本函数库工具有numpy、pandas等,机器学习通过sklearn框架,从而减少搭建模型所用的代码行数,简化算法实现过程。模型训练硬件环境Windows 7、64位操作系统的台式计算机,软件运行环境Pycharm;RCV算法使用python语言编程,软件环境Anaconda3。

2 结果

2.1SVM模型的训练及调优 设置C的寻优范围是2-2、2-1、1、2、22,gamma参数的寻优范围是2-3~22。图2A为2个参数的部分组合下模型的评估结果,通过评估每组排列组合的ACC值与AUC值,选取最佳参数组合。通过观察整体评估值,本文最终确定最佳参数为:kernel=′rbf′,C=1,gamma=0.25。依次判定,该参数下的模型性能最佳。

注:A,通过GridSearchCV法对SVM的C和gamma的寻优过程;B,构建的SVM模型的测试ROC曲线;C,SVM算法原理图。

2.2SVM模型评价 机器学习算法使用22个项目作为数据维度,在49 346对测试样本下,阳性样本量和阴性样本量均为24 673,测试后的TR、TN、FP、FN值分别为22 847、22 674、1 999、1 826;TPR为92.60%,TNR为91.90%,FPR为8.12%,FNR为7.48%,ACC为92.21%。ROC曲线如图2B所示,其中AUC为0.96;SVM算法原理见图2C。

2.3利用RCV值作为DC界限方法的实验结果 在该过程中,分别进行了4次实验,第1次对全部样本进行实验,准确率为79.62%;第2次通过剔除2次都在参考范围内的,准确率为81.51%,与第1次结果比较,准确率提高了2.37%;第3次和第4次并没有达到理想结果。4次实验准确度最高的项目均为红细胞平均血红蛋白量。

3 讨论

样本混淆直接影响患者安全,其识别准度与患者样本数据分布和发生概率有关,特别是要在大量样本流中识别出不规律、散发的样本混淆错误,这对方法的精准度要求非常高。有文献提出,采用项目组合方式替代原有的单一项目方式的识别方法,以此增加维度,提高识别精准度[4],例如采用血常规项目组合、常规生化检测项目组合等,但仍限于统计学方法。本研究选择了血常规项目,采用机器学习SVM算法,尝试建立一种超敏、高精的识别混淆样本新方法,准确率可达92.21%,相比传统DC法81.51%,本文建立的模型识别准确度提升了10.7%。主要原因是该模型将血常规22项作为一个机器学习样本,机器学习方法可借助不同检测项目间的未知关联性,改进识别的准确度。另外,有别于用RCV值作为DC界限方法,即:通过控制限区分正类和负类样本,机器学习方法是针对数据空间分布的相似程度计算所属样本类别的概率,如果某delta样本在“异常”类别下计算出较高的概率,则判定为可能是负类样本,反之,判定为正类样本,该方法较少受到人群个体内变异与个体间变异影响。通常情况下,正类样本被误判为负类样本称为假阳,负类样本误判为正类样本称为假阴。出现假阳性时,会额外增加临床实验室的工作量,影响报告的时效性;而出现假阴性时,可能会因为未能识别出混淆样本导致临床决策错误。我们模型的假阳率为8.12%,假阴率7.48%,而参比利用RCV值作为DC界限方法的假阳性率为23.42%,假阴性率为41.03%。实验结果证实,不仅降低了方法的假阳性率和假阴性率,同时由于机器学习方法准确度显著高于用RCV值作为DC界限方法,所以出现的极低概率假阴性结果,很可能发生在不同患者相同或极其相近的测量值情况,故不会影响临床诊疗决策。通过和利用RCV值作为DC界限方法模型比较,SVM分类算法具有较高的分类性能,准确率更高。

综上所述,通过对血常规结果信息进一步挖掘,建立的机器学习混淆样本识别模型,显著改善了方法的准确度。随着实验室自动化、信息化发展,报告自动审核模式应用越来越多,实施有效的检验全过程质量控制十分重要,而目前分析前阶段质量控制主要采用质量指标进行监控,基于机器学习的混淆样本识别模型构建为分析前质控提供了新思路。

致谢:感谢内蒙古卫数数据科技有限公司陈超,在本研究中负责人员组织、协调,提供必要的硬件保障。

猜你喜欢
阴性机器样本
机器狗
玉簪属种质资源收集筛选及耐阴性研究
机器狗
规划·样本
未来机器城
人大专题询问之“方城样本”
随机微分方程的样本Lyapunov二次型估计
“官员写作”的四个样本