基于风险权重评估医学机器学习模型性能的方法和设备与流程

文档序号:21369246发布日期:2020-07-04 04:45阅读:311来源:国知局
基于风险权重评估医学机器学习模型性能的方法和设备与流程

本发明涉及机器学习领域,具体涉及一种基于风险权重评估医学机器学习模型性能的方法和设备。



背景技术:

随着机器学习、深度学习、计算机视觉和图像识别等人工智能核心技术的突破和发展,通过大量医学标注样本对模型进行训练所获得的诊断模型,在医学场景展示了出色的性能、可信的效果和真实的应用价值。而且,由于深度神经网络(dnn)具备巨大的参数空间,模型描述能力极强,所以一个模型可以胜任多个识别任务。推延至医学场景,也就是一个模型可以完成多个病种的识别,比如肺部、视网膜、皮肤的多种疾病。多病种诊断模型是医学ai算法的主要形态。

比如中国专利申请(申请号2018103874848)公开一种基于机器学习的眼底图像检测方法,该方法可以通过眼底图像识别豹纹、白斑等明显病种,同时能够识别细小的渗出点和出血点。由于医学涉及人们的生命健康安全,模型识别错误的风险极高。风险控制对医学ai产品的成功极为重要。所以,对诊断模型进行评估,确定其风险程度,进而判断是否可投入应用,是非常有必要的工作。而且,大部分模型并非开箱即用,需要结合其应用子场景,对模型的参数(如预测的概率阈值)进行调优,以最恰当地符合场景需求。

现有的机器学习模型评估和调优方法,比如roc-auc分数、f1分数等,尽管具备足够的科学性和操作性,但并不足以评估医学领域的机器学习模型。具体地,医学模型输出的错误结果可能存在假阳性(误诊)和假阴性(漏诊)这两种情况,现有的评估方案并不区别对待这两种错误,也即默认赋予相同的风险权重。而从实用性的角度来说,比如在疾病筛查场景中,漏诊的后果比误诊的后果更加严重,所以对假阳性的容忍会大于假阴性。比如两个模型对同一个医学数据集进行识别后,输出的错误结果数量相同但错误类型不同,如果使用现有的评估方案,仍会将两个模型的性能视为一致。



技术实现要素:

有鉴于此,本发明提供一种评估医学机器学习模型性能的方法,所述模型用于根据医学数据识别至少一种疾病,所述模型输出用于表示各种疾病类型的概率值;所述方法包括:

利用所述模型识别评估数据集,所述评估数据集包括多个医学数据及其标签;

获取所述模型针对所述评估数据集中的各个医学数据输出的概率值,并根据疾病阈值确定识别结果;

比对所述识别结果和所述标签以确定错误的识别结果,包括各种疾病的假阳性和/或假阴性识别结果;

根据错误的识别结果的数量及其对应的风险权重计算关于各种疾病的第一风险值;

根据所有疾病种类的第一风险值确定所述模型的性能值。

可选地,根据所有疾病种类的第一风险值确定所述模型的性能值,包括:

根据所述风险权重和所述评估数据集中的类型占比得到所有疾病种类的第二风险值;

根据所有疾病种类的第一风险值和所有疾病种类的第二风险值确定所述模型的性能值。

可选地,对于能够识别多种疾病的模型,每一种疾病类型对应一个所述疾病阈值、每一种疾病类型对应一组所述风险权重。

可选地,所述风险权重包括对应假阳性的风险权重和对应假阴性的风险权重。

可选地,利用如下方式计算所述第一风险值:

其中rl为第l种疾病的第一风险值,fnl为第l种疾病的假阴性识别结果的数量或比例,为对应第l种疾病的假阴性的风险权重,fpl为第l种疾病的假阳性识别结果的数量或比例,为对应第l种疾病的假阳性的风险权重。

可选地,对于第l种疾病,采用的疾病阈值使其第一风险值为最优值。

可选地,根据所有疾病种类的第一风险值和所有疾病种类的第二风险值确定所述模型的性能值,包括:

计算所有疾病种类的第一风险值的和rmodel与所有疾病种类的第二风险值的和rbaseline的比值其中rl为第l种疾病的第一风险值,为第l种疾病的第二风险值,l为疾病种类的数量;

根据确定所述模型的性能值。

可选地,所述性能值在0-1之间,与性能呈正相关关系。

可选地,利用如下方式计算所述模型的性能值:

相应地,本发明提供一种评估医学机器学习模型性能的设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述评估医学机器学习模型性能的方法。

根据本发明提供的评估方案,用户可以根据应用场景以及病种的情况来设置风险权重,利用待评估的模型对评估数据集中的各个医学数据进行识别,通过比对识别结果和标签可确定如假阳性(fp)和假阴性(fn)误判,然后利用与错误类型相应的预设风险权重计算风险值以体现风险侧重,最后利用该风险值计算模型的性能值,这种结果蕴含对不同错误结果的容忍程度,适合对医学领域的机器学习模型进行评估,具有较强的实用性。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中评估单病种识别模型性能的方法流程图;

图2为本发明实施例中评估多病种识别模型性能的方法流程图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

本发明实施例提供一种评估医学机器学习模型性能的方法,该方案的应用领域在于医疗健康领域对疾病或者病灶相关的分类或者以分类为输出指标的模型优化。本发明所述模型具体可以是深度卷积神经网络模型,该模型经过训练,可根据医学数据识别至少一种疾病,即模型输出的病种分类数量大于或等于1。医学数据具体可以是图像、文本、声音等患者数据,将这些数据输入模型,模型对数据进行特征提取和识别,输出表示各种疾病类型的概率值(或称为置信度)。

作为举例,识别单一病种的模型对医学数据i进行分类,将输出一个概率值p,p的值在0-1之间,p的值越大表示更可能患有这种疾病,或者说医学数据i更可能属于这一疾病类别。实际应用时,为了得到更清楚的结论会设置一个疾病阈值h,当p>h时判定该医学数据i属于此疾病类别,否则不属于此疾病类别。

本实施例提供的评估方法可以用于评估这种识别单一病种的模型,如图1所示该方法包括如下步骤:

s1a,利用模型识别评估数据集。本发明所述评估数据集中的医学数据是已知疾病类别的数据,评估数据集包括多个医学数据及其标签,标签用于表示疾病类别。作为评估单分类模型的数据,医学数据的标签只需表示该数据是有疾病还是无疾病即可,即属于阳性或是阴性。

s2a,获取模型针对评估数据集中的各个医学数据输出的概率值,并根据疾病阈值确定识别结果。模型对医学数据进行分类输出概率值,对于概率值大于疾病阈值h的输出,最终识别结果为阳性;对于概率值小于或等于疾病阈值h的输出,最终识别结果为阴性。

s3a,比对识别结果和标签以确定错误的识别结果。比如模型对某个医学数据的分类结果为阳性,而该医学数据的标签为阴性,则模型的分类结果是错误的,称之为假阳性;比如模型对某个医学数据的分类结果为阴性,而该医学数据的标签为阳性,则模型的分类结果是错误的,称之为假阴性。本发明所述错误的识别结果可以是假阳性和假阴性中的一种也可以是全部。

s4a,根据错误的识别结果的数量及其对应的风险权重计算第一风险值。模型的识别结果可能有四种情况,其中两种是正确的识别结果即阳性tp和阴性tn,两种错误的识别结果即假阳性fp和假阴性fn。在此要统计假阳性fp和/或假阴性fn的数量,对应的风险权重为ω+和ω-,风险权重为预设值。

风险权重的值用来衡量误判造成的损失,可以用经济学意义上的金钱损失来度量,或者采用人力补救的时间成本等等。实际应用时应预先根据应用场景和产品要求来设定,作为整个方案的输入条件。

如果将fp和fn中的某一种视为错误的识别结果,则只需要设定一个相应的风险权重;如果将fp和fn均视为错误的识别结果,则需要设定ω+和ω-两个风险值。这两种权重的大小关系可根据实际需求进行设置,比如在筛查场景中,为了避免阳性病例的漏诊,对fp的容忍会大于fn,也即fp的风险小于fn,那么ω+小于ω-

作为示例性的说明,第一风险值r=ω-fn,或者r=ω+fp,或者r=ω-fn+ω+fp。fn可以是假阴性识别结果的数量或者假阴性占所有识别结果数量的比例,fp也可以是假阳性识别结果的数量或者假阳性占所有识别结果数量的比例。

s5a,根据模型的第一风险值确定模型的性能值。在本实施例中,由于模型只识别一种疾病,那么模型的第一风险值rmodel=r。如果模型的识别结果全部正确,即fn和fp都为0,则rmodel=0,相应的性能值为最大值;模型输出的错误识别结果越多,rmodel越大,则性能值越小。在可选的实施例中,直接将第一风险值作为性能值也是可行的,但为了便于比较,可采用特定的归一化算法将性能值映射在一个区间内,具体算法有多种。

作为一个优选的实施例,步骤s5a可包括如下步骤:

根据上述风险权重和评估数据集中的类型占比得到所有疾病种类的第二风险值。第二风险值只与数据集本身的情况有关,比如数据集中有疾病(阳性)的医学数据的比例是a,阴性的医学数据的比例是1-a,假设数据集有n个医学数据,则数据集的baseline(中文也称基线,下同)模型的混淆矩阵为:

baseline模型是指模型至少可以学习到数据集的先验分布。如果数据集中有病的比例为a,那么baseline模型就对每个数据按照概率a预测为有病(阳性),也即1-a的概率预测为无病(阴性)。而模型预测值与实际数据是相互独立的概率分布,那么模型预测有病且真实也有病的概率为a2;模型预测无病且真实也无病的概率为(1-a)2;模型预测有病而真实无病的概率为(1-a)a;模型预测无病而真实有病的概率为(1-a)a。因此,根据ω-和/或ω+及混淆矩阵,可以计算出基准风险值(第二风险值)rbaseline

需要说明的是,上述关于baseline模型及其混淆矩阵的具体实施例只是为了清楚地说明第二风险值的含义,并不是对其计算方式进行限定,实际使用时还存在其它的计算方式,此处不再赘述。

根据所有疾病种类的第一风险值和所有疾病种类的第二风险值确定所述模型的性能值。如果rmodel>rbaseline,说明模型没有鉴别性;如果rmodel=0,说明模型的所有识别结果全部正确。鉴于rmodel=0是理想状态,实际的模型输出很难全部正确,因此可根据rmodel和rbaseline这两个数值来计算一个数值,来衡量模型的性能。

具体计算方法有多种,例如可以是rmodel与rbaseline相减、相除等等,比如性能值结果越接近0表示rmodel越小,模型性能越好,当结果大于1时表示模型没有鉴别性。

为了便于比较,可以采用特定的计算方式使性能值在0-1之间。作为具体的实施例,采用如下方式计算性能值r:

由此,当rmodel>rbaseline时,rs会为负值,说明模型没有鉴别性,故截取到0;当0<rmodel<rbaseline时,rs会为正值,并且是0-1之间的数,故截取到即使考虑到rmodel=0的情况,也可以截取到rs=1。

根据本发明实施例提供的评估方案,用户可以根据应用场景以及病种的情况来设置风险权重,利用待评估的模型对评估数据集中的各个医学数据进行识别,通过比对识别结果和标签可确定如假阳性(fp)和假阴性(fn)误判,然后利用与错误类型相应的预设风险权重计算风险值以体现风险侧重,最后利用该风险值计算模型的性能值,这种结果蕴含对不同错误结果的容忍程度,适合对医学领域的机器学习模型进行评估,具有较强的实用性。

不同疾病的发病率不尽相同,有常见病、有罕见病。病种在整体人群分布的风险占比也有不同。如上所述,步骤s2a中模型输出概率值之后是通过疾病阈值h来确定识别结果的,因此疾病阈值h实际上会影响错误结果的数量(假阴性和/或假阴性的数量),进而影响第一风险值r。在可选的实施例中,基于风险最小化约束,可以求出最佳阈值hoptim及最优第一风险值rmin

由此,采取最优的疾病阈值hoptim及其对应的最优第一风险值rmin来计算模型性能值,针对病种搜索合适的疾病阈值来反映模型的最优性能,使结果更加准确。

对于能够识别多种疾病的模型,作为举例,假设模型能够根据医学数据识别l种疾病(l大于1),所使用的评估数据集deval中包括多种疾病类型的医学数据,医学数据的标签为疾病类型,比如0表示无任何疾病、1表示属于第一种疾病……,l表示属于第l种疾病。并且,多个病种间不是互斥关系,可存在同时发病的情况,也即同一个医学数据可以属于多个疾病种类。当然不同病种可能存在内在正/负相关性,但不影响本发明提供的评估方案。

本实施例提供一种用于评估多病种识别模型性能的方法,如图2所示该方法包括如下步骤:

s1b,利用模型识别评估数据集。本实施例中的数据集中的医学数据可能包括一个或多个标签,不同的医学数据所属的疾病类别可能相同或不同。因此模型需要针对每一个医学数据分别识别其是否属于各种疾病类型。

s2b,获取模型针对评估数据集中的各个医学数据输出的概率值,并根据疾病阈值确定各病种的识别结果。可参照上述步骤s2a,区别在于需要针对每种疾病确定识别结果。具体地,模型对一个医学数据进行分类,输出第l个病种的患病概率记为pl,l=1……l。每一种疾病类型对应一个疾病阈值,记为hl。当然,不同的病种对应的疾病阈值可以是相同的,相当于只有一个通用的疾病阈值也是可行的。但在优选的实施例中,应根据具体疾病类型的情况来设定各自的疾病阈值。

对于第l种疾病,模型输出的概率值pl大于疾病阈值hl,则识别结果为阳性;模型输出的概率值pl小于或等于疾病阈值hl,则识别结果为阴性。

s3b,比对识别结果和标签以确定错误的识别结果,包括各种疾病的假阳性和/或假阴性识别结果。对于第l种疾病,与标签不一致的识别结果记为假阴性fnl和假阳性fpl,与上述实施例类似地,这里可以只将其中一种视为错误的识别结果,或者同时将两者情况都视为错误的识别结果。

s4b,根据错误的识别结果的数量及其对应的风险权重计算关于各种疾病的第一风险值。由于疾病种类有多种,因此要设置针对各种疾病类型的风险权重。对于第l种疾病,可设置对应于假阴性的风险权重和应于假阳性的风险权重由此可计算出关于第l种疾病的第一风险值rl。作为优选方案,fnl是第l种疾病的假阴性识别结果的数量或者占总数据数量的比例,fpl是第l种疾病的假阳性识别结果的数量或者占总数据数量的比例。

对于多病种,通过设定相应的风险权重可使评估结果对每个病种的风险偏重有所不同。比如某个待评估模型能够根据眼底图像识别黄斑前膜和小玻璃膜疣这两种疾病,而黄斑前膜的风险要大于小玻璃膜疣,由此可以设置黄斑前膜的风险权重大于小玻璃膜疣的风险权重。

需要说明的是,各种疾病的风险权重取值也可以是相同的,相当于只有一组风险权重也是可行的。

参照上述实施例关于最优第一风险值的计算方式,这里针对各种疾病类型都可以基于风险最小化来确定最佳疾病阈值及最优第一风险值rl-min:

s5b,根据所有疾病种类的第一风险值确定模型的性能值。在本实施例中,由于模型需要识别多种疾病,每一种疾病都有第一风险值,因此模型的第一风险值的计算方式为

然后参照上述步骤s5a根据rmodel计算模型的性能值。作为优选方案,步骤s5b具体可以包括如下步骤:

根据所述风险权重和所述评估数据集中的类型占比得到所有疾病种类的第二风险值。关于第二风险值,其只与数据集本身的情况有关,比如数据集中有第l种疾病(阳性)的医学数据的比例是al,阴性的医学数据的比例是1-al,假设数据集有n个医学数据,则对于第l种疾病,数据集的baseline模型的混淆矩阵为:

进而对于第l种疾病,baselinemodel预测产生的fn和fp数量都为(1-al)al。根据和/或可以计算出基准风险值(第二风险值)所有疾病类型的总的第二风险值rbaseline,即模型的第二风险值的计算方式为

根据所有疾病种类的第一风险值和所有疾病种类的第二风险值确定模型的性能值。为了便于比较,可以采用特定的计算方式使性能值在0-1之间。作为具体的实施例,采用如下方式计算性能值rs:

由此,当rmodel>rbaseline时,rs会为负值,说明模型没有鉴别性,故截取到0;当0<rmodel<rbaseline时,rs会为正值,并且是0-1之间的数,故截取到即使考虑到rmodel=0的情况,也可以截取到rs=1。

根据本发明实施例提供的评估方案,用户可以根据应用场景以及病种的情况来设置对应各个病种的风险权重,利用待评估的模型对评估数据集中的各个医学数据进行识别,通过比对识别结果和标签可确定对各个病种的错误识别结果,然后利用与各个病种相应的预设风险权重计算风险值以体现风险侧重,最后利用该风险值计算模型的性能值,这种结果蕴含对不同病种的错误结果的容忍程度,适合对医学领域的多病种识别模型进行评估,具有较强的实用性。

本发明实施例还提供一种评估医学机器学习模型性能的设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述如图1或图2所示的评估医学机器学习模型性能的方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1