赵鹏飞,刘 华
(1. 昆明理工大学计算机重点实验室,昆明 650500;2. 昆明理工大学信息工程与自动化学院,昆明 650500;3. 昆明理工大学人事处,昆明 650501)
随着现代社会的不断进步与发展,各类创伤特别是高能创伤的发生率逐年递增[1],且现代创伤中多发伤多、重伤多、严重并发症出现几率高,给患者的救治提出了新的挑战。为了更好地实现院前院内救治一体化[2-3],不仅要在院内制定科学合理的救治方案,在院前对患者制定合理准确的救治决策同样具有重要意义。创伤救治决策与具体的伤情救治方案不同,它是在院前根据患者的创伤严重程度与即时症状表现等因素制定的综合救治建议,旨在缩短患者入院后的急诊停留时间,使患者尽快得到相应级别的院内医疗救治,有效降低患者的伤残率与死亡率。然而据相关调查显示[4],由于不同地域和不同级别的院前急救人员与医生的专业领域知识、过往经验积累以及个体主观认知存在差异,给伤情评估与标准化救治决策的制定带来了一定阻碍。
多标签学习是一类经典的监督学习方法。近年来,随着相关研究的不断深入推进,多标签学习不再局限于文本分类等传统任务的驱动,在诸多领域的复杂数据分析与疑难问题解决上也取得了优良的实际应用效果。例如,Folorunso 等[5]通过建立多标签分类模型并比较不同评估方法对尼日利亚精神疾病数据进行了深度剖析与探究;Wang 等[6]基于多标签学习思想提出一种层次认知结构学习模型(Hierarchical cognitive structure learning model,HCSM),通过在4 个基准数据集上的实验证实了该模型性能优于最新的方法;Hou 等[7]提出了一种有效的多标签学习方法用于车辆的重新识别(re-ID),并通过对比实验证实了该方法优于现有的多种车辆重新识别方法。除此之外,多标签学习思想也逐渐应用于医学影像识别、生物基因分析和工业故障诊断等领域的研究[8-10]。
对于创伤救治决策的制定,传统的人工制定方法存在不同急救人员与医生水平参差不齐、个人经验积累与主观认知差异对救治决策制定的客观合理性与准确性存在影响等缺陷。为了克服上述缺陷并对患者制定尽可能合理准确的标准化救治决策,本文基于多标签学习思想,将创伤救治整体决策划分为若干子决策,并将子决策对应的判定因素转化为多标签学习的标签集,从而将创伤救治决策制定的问题转化为一个多标签学习任务,通过客观的人工智能方法进行标准化创伤救治决策的预测与制定。
对于多标签算法的选择,ML-KNN 是由KNN 算法演变而来的一种优秀的惰性学习算法。与其他各类经典多标签学习算法相比,ML-KNN 不仅无数据输入假设、准确度高,而且对异常点不敏感,是一种被广泛接受和采用的多标签学习算法。因此,本文在对各类多标签学习算法进行深入研究的基础上,将Classifier Chains 算法[11]的链式思想与多标签K 近邻(Multi-label K-nearest neighbor,ML-KNN)算法[12]融合,通过对ML-KNN 算法进行改进,提出一种多标签学习算法,称为层链多标签K 近邻算法(Layer chain ML-KNN,LCML-KNN)。LCML-KNN 属于高阶算法,它根据专家小组的专业辅助与指导将标签划分为两个层链,第一层链模型预测完毕后将预测标签信息经独热编码后转化为新特征扩充数据集的样本维度,扩充后的特征信息用于第二层链模型的学习与预测。通过与若干经典的多标签学习算法以及集成学习方法的实验对比,证明了LCML-KNN 算法的综合性能表现最佳,体现了该算法的有效性与优越性。
本研究的创新性有:(1)将创伤救治决策制定转化为多标签学习任务:对创伤救治整体决策进行子决策的划分,提取出子决策对应的判定因素并转化为多标签学习的标签集,从而将创伤救治决策制定的问题转化为一个多标签学习任务,旨在通过客观的人工智能方法对不同创伤患者尽可能给出合理准确的标准化救治决策预测与建议。(2)提出LCML-KNN 算法:为了更好地考虑标签间的关联、挖掘不同标签间的关系,LCML-KNN 高阶算法基于链式思想将标签集中的标签根据专家小组的专业辅助与指导划分为两个层链,将第一层链的预测标签信息经独热编码后转化后为新特征对数据集进行样本维度的扩充,随后用扩充后的数据集继续进行第二层链模型的学习与预测,相较于现有多标签算法显示出了更为优越的整体性能。
首先通过救治子决策的划分将子决策对应的判定因素转化为多标签学习的标签集,随后对不同标签的层链划分进行了细致说明;然后对多标签学习基本概念与常见算法进行了简要介绍,最后着重介绍了所提出的LCML-KNN 算法的原理与特点。
创伤救治决策是在院前根据患者的创伤严重程度与即时症状表现等因素制定的综合救治建议。为了构建多标签学习的标签集,对整体救治决策进行救治子决策的划分。对于子决策划分,首先要对患者是否具有救治意义做出准确判断,即患者的伤情是否具有生还可能,对于判定为无生还可能的患者可终止后续的决策制定与建议。然后对于具有救治意义的患者应对其伤情严重程度做出客观准确的评估并制定相应决策:无大碍的轻伤患者可就近送往社区医院;评估为严重创伤以及多发伤的患者,应尽快联系医院急救中心开辟绿色通道,尽可能在“黄金时间窗口”内使其入院救治,降低患者死亡率[13-14]。除此之外,由于创伤是“时间敏感性”疾病[15],所以整体救治决策中还包含以下两个重要子决策:(1)对患者是否存在并发症或严重症状进行判断,根据具体情况制定相应决策并开展必要的院前急救,典型的并发症与症状包括气道堵塞、大出血、气胸和低体温等[16-17];(2)对创伤患者特别是严重创伤患者在入院途中和入院后潜在的伤情恶劣演化与并发症发生的风险进行合理预判,并提前制定好相应的应对决策与措施。
基于上述4 个子决策的分析,将4 个子决策对应的判定因素提取出来,结果如表1 所示。
表1 子决策对应的判定因素Table 1 Judgment factors corresponding to sub-decisions
最后,将上述4 个判定因素转化为4 个标签,表示为L1、L2、L3和L4,分别对应判定因素1 至4,并由此建立了包含4 个标签的标签集。标签集的建立流程如图1 所示。
图1 标签集的建立流程Fig.1 Flow of establishment of label sets
为了更好地考虑与运用标签间关联,将标签集中的4 个标签进行了科学合理的层链划分。具体方法为首先在专家小组的专业辅助与指导下考虑了不同标签(判定因素)的医学意义及其潜在的相互关联与影响。为了使第一层链的标签信息在转化为新特征并扩充特征维度后能够对第二层链标签的准确预测起到促进作用即实现信息层级递进,将与患者创伤严重性相关的判定因素1(L1)和判定因素2(L2)放入第一层链,将判定因素3(L3)与判定因素4(L4)放入第二层链。这样划分的原因其一是对于患者来说,创伤严重程度越重,存在并发症或严重症状的概率越大,即使当前没有并发症出现的重伤患者,其在送院救治过程中出现伤情恶劣演化的风险概率较大;其二是这样的划分也符合创伤救治的实际逻辑,即患者是否具有救治意义及创伤严重程度是需要首先考虑和判断的,在此判断的基础上再进一步对患者是否存在并发症或严重症状以及有无伤情恶劣演化风险进行判断。综上所述,在层链划分环节将标签L1与L2放入第一层链,将标签L3与L4放入第二层链,旨在将原本并行的分类器模型进行分层处理,目的是充分挖掘标签相关性。
另外需要说明的是,除了不同层链之间存在先后顺序之外,处于同一层链中的不同标签并没有先后顺序,分类器对同一层链中的标签是同时进行分类预测的,即两个层链的分类器分别对各自层链中的标签进行了多标签分类。
在一般的有监督学习中,样本包含若干特征向量并对应一个唯一的标签,称为单标签学习。而在实际的许多复杂任务与问题中,一个样本可能同时与多个标签相关联,通过对标签集中多个标签的同时学习来对新样本进行分类与预测,这就是多标签学习。
基于目前的研究,多标签学习算法按照不同的思想可以分为3 类:问题转换、算法自适应和集成学习方法。除此之外,多标签学习还可以划分成如图2 所示的三大策略:其中一阶算法包括Binary Relevance 算法、ML-DT 算法[18]和ML-KNN 算法;二阶策略的代表算法包括Rank-SVM 和Calibrated Label Ranking[19];高阶算法考虑了多个标签间的内在联系,包含Classifier Chains、Label Powerset[20]、ECC 和RAkEL[21]等算法。
图2 多标签学习的不同策略Fig.2 Different strategies for multi-label learning
分类器链(Classifier Chains)算法是高阶算法,同时也是一类问题转换方法,其基本思想是将多标签学习转化为若干二分类问题。假设标签集中的标签总数为q,分类器链生成q个二进制的分类器,链中每个分类器的特征空间用先前分类器的预测标签进行扩充,即链中的后续二进制分类器是建立在前置预测基础之上的。图3 对Classifier Chains 的原理进行了举例说明,其中X代表输入空间,Y代表标签。作为高阶算法的Classifier Chains 以随机链序的方式考虑了标签之间的潜在关联性,虽然算法简单,但在一定程度上挖掘了不同标签之间的关系。
图3 Classifier Chains 算法的原理Fig.3 Principle of Classifier Chains algorithm
ML-KNN 算法是一类惰性学习算法也是一阶策略算法,针对多标签学习问题由KNN 算法改进而来。ML-KNN 算法的思想是通过计算欧几里得距离来寻找K个最近邻样本,然后利用最大后验概率(Maximum a posteriori,MAP)准则和贝叶斯准则进行结果的判断与预测。ML-KNN 算法的描述如下:
从而对样本X是否含有标签l做出判定,并对训练集样本的标签属性进行预测。
ML-KNN 算法考虑了先验概率,其优点是准确率相对优良且对异常点不敏感,适用于处理类不均衡的数据集。但该算法作为一阶策略的算法,其不足之处是完全忽略了标签信息的关联性。
LCML-KNN算法是一种高阶算法,由ML-KNN算法改进而来,其原理示意图如图4 所示。LCML-KNN 首先将不同标签根据专家指导划分为两个层链,第一层链的标签包括L1和L2,第二层链的标签包括L3和L4,且每个层链的分类器模型都采用ML-KNN 算法;随后,第一层链分类器对L1和L2预测并得到两个预测标签,将预测标签组合经独热编码后转化为新样本特征扩充数据集样本维度;然后用扩充后的数据集继续进行第二层链分类器的学习,并得到L3与L4的预测标签;最后将两个层链的4个预测标签进行合并就得到了最终的多标签预测结果。
图4 LCML-KNN 算法的原理Fig.4 Principle of the LCML-KNN algorithm
LCML-KNN 算法的特点如下:
(1)标签层链划分:将不同标签根据专家小组的辅助与指导划入两个层链,在第一层链分类器模型预测的标签组合输出后经独热编码转化为新特征,并用扩充的数据集进行第二层链分类器模型的学习与预测。层链划分处理对预测准确率的提升起到了关键作用。
(2)新特征独热编码处理:通过对第一层链的预测标签组合进行独热编码转化的操作,有效防止了过拟合问题的出现。
(3)更好地考虑标签关联性:LCML-KNN 算法作为一种高阶算法,与ML-KNN 等一阶算法相比,通过划分层链更好地考虑了标签间的关联性,进一步挖掘了全局的标签信息,加深了分类器模型对数据的理解。
为了能够使分类器得到更多数据样本的充分学习与训练,将某军医院校分多次提供的小规模外科创伤数据集整合为了一个包含3 514 条数据的大数据集用于研究。该数据集包含了各类创伤患者的伤情数据,从数据种类的丰富性与多样性来看具有良好的创伤种类、伤情情况的数据覆盖性。将数据样本按照8∶2 的比例进行了训练集与测试集的划分,经特征提取后样本共包含特征24 个,特征中包括了对救治决策制定起重要参考作用的受伤部位、组织伤型、伤类、并发症和包括呼吸频率与收缩压之内的简单生理体征等,且每个特征都转化为了数字属性并经过了标准的离散化处理。多标签学习的标签集共包含4 个标签,分别对应4 个判定因素L1、L2、L3和L4。
为了对本文所使用的数据进行更为深入的挖掘与了解,接下来从多角度对数据的相关统计展开计算与分析。在分析之前预先定义以下符号:D代表数据集;p为数据集样本总数;q为标签总数;Yi是与样本实例xi相关的标签序列;d表示特征的数量。
(1)标签基数
标签基数(Label Cardinality)是数据集中每个实例的标签平均数量,是一个标准度量,在一定程度上反映了总体样本的标签稀疏情况[22],其表达式为
(4)数据复杂度
数据复杂度(Complexity)定义为样本总数p、特征数量d和标签总数q三者的乘积,反映了多标签数据集的整体复杂程度,计算公式为数据的相关统计分析结果在表2 中进行了详细展示,其中n表示特征属性为数字属性。
表2 数据的相关统计分析Table 2 Relevant statistical analysis of data
在实验环节,首先确定了评价各类算法性能的多标签学习评价指标。随后,设置了3 组对比实验,分别令LCML-KNN 算法与经典的多标签算法、经典的集成学习算法RAkEL 和ML-KNN 算法进行实验对比来探究LCML-KNN 算法的整体性能表现。接下来,为了进一步验证算法的鲁棒性和优越性,在同属于创伤类数据集的一个战争创伤数据集上进行了不同算法的对比实验。最后,对两个数据集上的实验结果进行了总结分析与讨论。
为了对各类算法的性能进行科学的综合评价,针对该多标签学习任务的特点,选取了以下5 个整体评价指标:汉明损失(Hloss)、平均准确率(Average_acc)、平均精度(Average_pre)、F1-score 以及AUC值。评价指标的部分公式如下
式中:Fβ为平均精度和平均召回率的加权调和平均值,precision(h)代表平均精度,recall(h)代表平均召回率。为了求取F1-score,参数β的值设定为1。
在第1 组对比实验中,将LCML-KNN 与常见的经典多标签学习算法进行对比。具体来说,选取Binary Relevance(BR)、Label Powerset(LP)和Classifier Chains(CC)3 种算法作为对照,对比实验结果如表3 所示。
表3 LCML-KNN 与各类算法的实验结果对比Table 3 Comparison of experimental results between LCML-KNN and various algorithms
从表3 中可以看出,Classifier Chains 的各项评价指标均优于Binary Relevance 和Label Powerset。这是因为Classifier Chains 通过链式思想考虑了标签之间的潜在关联性,即每预测完一个标签便将其作为新特征对特征空间进行扩充。但是,这3 种算法的评价指标表现均不如LCML-KNN,即使是考虑了标签关联性的Classifier Chains 算法,其平均准确率与平均精度较LCML-KNN 也分别低了1.55%和1.2%。
在第2 组对比实验中,将LCML-KNN 与RAkEL 集成学习算法进行实验对比。
RAkEL 即随机k标签集(Randomk-labelsets)算法,是一种性能优良的集成学习方法。它的原理是将标签集随机划分为若干个标签子集,然后选择n个随机的k标签集并学习n个LP 分类器,每个LP 分类器为自己对应的k标签集中的每个标签提供分类预测,最后集成这n个LP 分类器得到最终预测。对比实验结果如表3 所示。
从表3 的各评价指标表现可以看出,虽然LCML-KNN 在汉明损失、平均准确率、平均精度和AUC值的性能表现更佳,但是F1-score 指标的表现与RAkEL 相比有细微差距。但从整体来看,LCML-KNN的综合性能表现是更优的,其原因是虽然RAkEL 是一种优良的集成学习算法,但相较于LCML-KNN而言并没有考虑标签信息,没有挖掘标签间的潜在关联性。
由于本文提出的LCML-KNN 算法是基于分类器链的链式思想对ML-KNN 改进而来的,因此在第3 组对比实验中,将LCML-KNN 与ML-KNN 进行综合性能的比较。实验结果如表3 所示。
从表3 的各项评价指标结果可知,属于高阶算法的LCML-KNN 在5 个评价指标中有4 个要比MLKNN 好,特别是重要的平均准确率的结果要高于ML-KNN 0.8%。而ML-KNN 算法仅在F1-score 这一项指标上的表现要略高于LCML-KNN 0.37%。因此,所提出的LCML-KNN 算法在综合性能表现上要好于传统的ML-KNN 算法,体现了LCML-KNN 的优越性。
LCML-KNN 的整体性能之所以要比ML-KNN 好是因为LCML-KNN 充分考虑与挖掘了标签间的关联性,并根据标签集中不同标签的特点将其进行了层链划分处理,而ML-KNN 则是完全忽略标签间的关联。
为了进一步验证LCML-KNN 算法的鲁棒性和优越性,本文在同属于创伤类数据集的另一个战争创伤数据集上同样进行了不同算法的对比实验。
该战争创伤数据集共包含可用数据1 216 条,样本特征维数为26,按照同样8∶2 的比例对数据样本进行训练集与测试集的划分,每个特征都转化为数字属性并经过标准的离散化处理。对于标签集,因为战争创伤救治考虑的判定因素与外科创伤救治的判定因素不尽相同,因此标签集包含同样的4 个标签,分别对应4 个重要判定因素L1、L2、L3和L4。对比实验结果如表4 所示。
表4 LCML-KNN 与各类算法在战争创伤数据集上的实验结果对比Table 4 Comparison of experimental results between LCML-KNN and various algorithms on the war trauma dataset
从表4 的实验结果中可以看出,所提出的LCML-KNN 算法在各项评价指标的性能表现上均优于其他传统的多标签学习算法,从而进一步有力验证了LCML-KNN 算法的鲁棒性和优越性。
通过上述两个数据集的不同算法的对比实验,全面而客观地验证了本文所提出的LCML-KNN 算法的鲁棒性与优越性。LCML-KNN 通过链式思想将子决策对应的判定因素进行了层链划分,充分挖掘了不同标签间的关联性,对标签信息有了更为详实的了解,是准确率提升的关键。同时,第一层链预测标签的特征转化不仅扩充了原始数据的特征维度、丰富了可用的数据信息,而且数据标签信息的层级递进预测也使分类器模型能够更为透彻地学习与理解数据特征,提升模型性能。其次,对第一层链的预测信息进行独热编码操作能够有效地避免过拟合风险的发生,保证了第二层链分类器模型的预测质量。
最后需要说明的是,层链划分操作虽然可以使分类器整体性能得到有效提升,但与Classifier Chains算法一样,由于分层处理对算法准确率要求更高,为了避免第一层链分类器模型的预测错误沿链向后传播而影响第二层链分类器模型的性能,在层链划分时需尽可能地对所采用数据集的标签信息以及标签关联性进行深入挖掘与专业分析,以确保层链的科学划分。对于本研究,在层链划分时通过专家小组介入的方式确保了层链划分的合理性和专业性,进而保证了整体性能特别是准确率的有效提升。
为了改善传统人工制定创伤救治决策的缺陷与不足,本文基于多标签学习思想,在对创伤救治决策进行深入分析与研究的基础上,对救治决策进行了子决策划分,并提取出子决策对应的判定因素转化为多标签学习的标签集。接下来,为了更好地挖掘数据信息与标签间的关联,将Classifier Chains 算法的链式思想与ML-KNN 算法进行了融合,提出一种层链多标签学习算法LCML-KNN。LCMLKNN 根据专家小组指导将不同标签进行了层链划分处理,在第一层链的预测标签信息输出后经独热编码转化为新特征扩充了数据特征维度,并将扩充后的数据集代入第二层链分类器进行进一步的学习与预测。通过在两个数据集上的各类多标签学习算法的实验对比,全面而客观地验证了LCML-KNN 算法的鲁棒性和优越性。
在未来研究中,为了进一步提升决策制定的准确性与合理性,一方面可以通过进一步挖掘现有标签的潜在关联来提升LCML-KNN 算法性能,另一方面可以对救治决策进行更为细致科学的子决策划分并提取对应的判定因素。