梁明贤 梁斌梅 梁 平 罗 威 曾 昭 梁宝琳
(1.广西大学计算机与电子信息学院计算机系 南宁 530004)(2.梧州市中医医院 梧州 543002)
广西蛇伤发病季节长、病例多,在全国属于蛇伤高发区[1]。烙铁头蛇咬伤和竹叶青蛇咬伤是广西地区常见的毒蛇咬伤疾病。烙铁头蛇和竹叶青蛇均在中国十大毒蛇之列,其分泌毒液主要含血循毒,其中烙铁头蛇毒性较剧烈,竹叶青蛇毒性较弱,这两种毒蛇咬伤后症状相近,除了能清楚看到或抓到蛇,一般很难准确辨别是烙铁头蛇咬伤还是竹叶青蛇咬伤。烙铁头蛇蛇毒的半数致死量为2.76 LD50mg/kg,竹叶青蛇毒的半数致死量为3.3LD50mg/kg[2]。临床上常用抗蝮蛇毒血清或抗五步蛇毒血清进行烙铁头蛇咬伤治疗,混合使用抗蝮蛇毒血清和抗五步蛇血清进行竹叶青蛇咬伤治疗[2]。临床上一般依靠拥有丰富蛇伤救治经验的临床医师综合蛇伤流行病学特征和临床检查结果进行鉴别[3~4],但大多数基层医疗机构缺乏蛇伤救治经验的临床医师,往往因误诊而耽误治疗,从而容易危及患者生命。因此,准确鉴别是烙铁头蛇咬伤还是竹叶青蛇咬伤有着重要的临床意义。
针对蛇咬伤的鉴别诊断问题,李碧晴等[5]运用逆流免疫电泳法对5 种血循毒类毒蛇的蛇毒检测进行研究,该检测方法能准确区分烙铁头蛇毒和竹叶青蛇毒,但检测时间长,不适用蛇伤的快速诊断要求,在临床上得不到推广应用。陈腾飞等[6]研究尿液中的中性粒细胞明胶酶相关脂质运载蛋白(NGAL)、肝型脂肪酸结合蛋白(L-FABP)和肾损伤分子-1(KIM-1)这三项实验室指标对血循毒蛇中竹叶青蛇和烙铁头蛇咬伤所致急性肾损伤(AKI)早期诊断的作用,得到肝型脂肪酸结合蛋白的诊断能力最优的结论。阮国梅[7]等的研究表明血循毒类毒蛇中蝰蛇和竹叶青蛇咬伤治疗前和治疗后血清淀粉样板单A(SAA)、超敏C 反应蛋白(h-CRP)、白细胞(WBC)、中性粒细胞(NEUT)和D-二聚体(D-D)共6 项实验室指标有明显的差异性,对蝰蛇和竹叶青蛇的鉴别诊断有较好的价值。梁明贤[8]等提出利用PNN 神经网络对眼镜蛇咬伤进行预测诊断,预测准确率达到87.14%。付永钦[9]的研究提出一种BRC 神经网络对银环蛇、竹叶青蛇、舟山眼镜蛇、尖吻蝮、王锦蛇、黄金蟒、玉斑丽蛇、红尾蚺、红脖颈槽蛇和钩盲蛇共10 种蛇类图像进行分类研究,取得89.061%的分类准确率。张皓洋[10]利用迁移学习方法,重新训练Inception-v3卷积神经网络,对黑蛇、王锦蛇、眼镜蛇、银环蛇和竹叶青蛇这5 种蛇类图像进行分类研究,取得92.3%的分类准确率。有学者利用支持向量机方法对帕金森[11]、肺癌[12]、急腹症[13]、乳腺肿块[14]等疾病辅助诊断进行了研究,取得了不错的成果;也有学者利用主成分分析结合支持向量机方法对中药进行分类鉴别,取得较高的精度[15]。本文通过收集整理烙铁头蛇和竹叶青蛇咬伤住院患者的基本信息、生命体征、咬伤病史、蛇形态特征、局部和全身症状数据,基于主成分分析(Principal Component Analysis,PCA)方法对特征数据进行降维处理,再利用支持向量机(Support Vector Machine,SVM)进行分类。
本文通过收集2014 年~2020 年梧州某医院蛇伤科明确诊断为烙铁头蛇咬伤或竹叶青蛇咬伤的住院病历各270份,根据2018年中国蛇伤救治专家共识[4],并结合梧州某医院烙铁头蛇咬伤诊疗方案和竹叶青蛇咬伤诊疗方案,从病历中提取4 个患者基本信息特征、5 个生命体征、5 个蛇咬伤病史特征、8 个蛇形态特征、12 个局部症状特征和11 个全身症状特征,建立540行45列的特征数据集。烙铁头蛇咬伤和竹叶青蛇咬伤后伤口局部症状如图1、2所示。
图1 烙铁头蛇咬伤(从咬伤到入院时间5h)
图2 竹叶青蛇咬伤(从咬伤到入院时间2.5h)
本文实验中将收集到的540 组45 个特征的数据进行规范化描述,并转换为数值表示,作为输入特征向量X={x1,x2,x3,…,x45},其中x1~x4为基本信息,x5~x9为生命体征,x10~x14为咬伤病史,x15~x22为蛇形态特征,x23~x34为伤口局部症状,x35~x45为全身症状,如表1所示。
表1 输入特征规范化描述
选取的45 个特征中,各自对不同蛇咬伤的影响程度不相同,比如恶心、眼睑下垂、乏力大多数属于神经毒类毒蛇咬伤所致,血循毒类毒蛇基本无上述3 种症状;肿胀、疼痛大多数属于血循毒蛇常见的特征,对这两种血循毒蛇鉴别诊断意义不大;牙痕间距、牙痕形状、蛇体色斑、蛇图谱确认特征对这两种血循毒蛇咬伤的诊断意义比较大。因此,本文采用主成分分析法(PCA)对数据进行降维重构。
主成分分析的主要步骤如下。
第一步,将所有样本进行中心化:
第二步,计算样本的协方差矩阵:
其中X={x1,x2,x3,…,xn},n 为样本总数。协方差计算公式为
第三步,对协方差矩阵C 做特征值分解,计算出特征值λ=(λ1,λ2,λ3,…,λp)和对应特征向量ω={ω1,ω2,ω3,…,ωp},其中λ1≥λ2≥λ3≥…≥λp,p 为特征值个数。
第四步,对特征值从大到小排序,并计算各个特征的贡献率和累积贡献率,选取k 个最大特征值的特征向量组成的矩阵作为投影矩阵W={ω1,ω2,ω3,…,ωk}。
本文利用Scikit-learn 库中自带的PCA 模块进行实验,将样本数据进行降维,降维后各主成分方差如图3 所示。因烙铁头蛇和竹叶青蛇咬伤特征相近,故选择累计方差贡献率大于95%的最大38个主成成分特征,能够包括大部分信息。
图3 降维后各主成分的特征方差
考虑到临床数据量少,两种血循毒蛇的特征关联度高,故选取支持向量机(Support Vector Machine,SVM)作为本实验的分类方法。该方法在解决小样本问题中表现出特有的优势。支持向量机实质是一种寻找最优超平面的二分类方法,可通过构造核函数把特征数据映射到高维向量空间从而把非线性问题转化为线性问题进行处理。烙铁头蛇或竹叶青蛇咬伤这两种血循毒蛇的鉴别诊断问题是一个非线性问题,故需要把特征数据映射到更高维向量空间,设φ(x)为x 映射到高维特征空间的映射函数,则该问题的目标函数f(x)可表示为
其中:x 为输入向量,w为权重向量,φ(x)为映射函数,b为偏置向量。
至此,该非线性问题就转化为了线性二分类问题。
φ(x)映射函数的维度可能很大,计算比较困难,因此需要设置一个核函数K(xi,xj),使得任意两个原始特征经过核函数计算所得出的结果,是它们在特征空间中映射成的新向量的内积。
最后运用拉格朗日对偶算法求解最大分隔超平面,最终得到分类函数为
其中:αi为拉格朗日乘子,xi,xj为样本和样本所属标签,K(.)为核函数。
本文选择学习能力强且误差小的高斯径向基核函数为
其中:σ为核函数系数。
算法流程如下。
Step1 划分训练样本(x_train,y_train)和测试样本(x_test,y_test);
Step2 选择RBF 核函数和模型参数,将样本X映射到高维特征空间;
Step3解拉格朗日函数:
求得最优解为a*=(a1*,a2*,a3*,…,an*);
Step4 计算最优权重值向量w*和最优偏置向量b*,分别为
Step5 对 待 分 类 向 量x,计 算f(x)=sgn(w·函数值为+1或-1,决定x归属哪一类。
在支持向量机分类模型中,高斯核函数系数σ和正则化参数C 对模型影响较大。σ取值和样本划分的精细度有关,σ取值越小,模型越试图将每个样本与其他样本区分开,分的类别就越细,容易出现过拟合;σ取值越大,分的类别就越粗,容易出现欠拟合。C取值约束了正则化的强度,C越大,正则化强度越小,容易出现过拟合;C 越小,正则化强度越大,容易出现欠拟合[16]。因此,本文采用网格搜索方法寻找高斯核系数σ和正则化参数C 的最优值。
本文实验在Windows 10 操作系统上进行,利用PyCharm 集成开发环境,版本号为2021.2.2,python 版本号为3.7.2。实验中随机划分训练集362组,测试集178 组,然后利用训练集寻取最优的参数σ=0.1,C=2.12,最后在测试集上获得预测准确率为86%,AUC 值0.90。其中,烙铁头蛇咬伤召回率为93%,漏检率18%,f1 评分87%;而竹叶青蛇咬伤召回率79%,漏检率9%,f1 评分85%。将PCA+SVM 方法的实验结果与单SVM 进行对比,发现比单SVM方法的测准确率提高了6%。
本文针对临床上对烙铁头蛇咬伤和竹叶青蛇咬伤的鉴别诊断容易误诊的问题,基于临床数据,利用主成分分析结合支持向量机方法建立辅助诊断模型并进行了测试,结果发现模型预测准确率达到86%,比单支持向量机的预测准确率高出6%。
本文为烙铁头蛇咬伤和竹叶青蛇咬伤的临床鉴别诊断提供了一种简单、低成本和可重复的辅助诊断方法。但本研究只有540 例临床数据,数据量少,不能代表全部病例,还处在实验研究阶段,尚未进行临床验证。后续研究将采集更多更全面的临床样本数据,进一步提高准确率,并进行临床验证。