一种基于非线性集成模型的预测数据错误风险方法与流程

文档序号:21644241发布日期:2020-07-29 02:57阅读:154来源:国知局
一种基于非线性集成模型的预测数据错误风险方法与流程
本发明属于数据预测
技术领域
,具体涉及一种基于非线性集成模型的预测数据错误风险方法。
背景技术
:现有的数据错误风险计算器主要基于两种思路:(1)相关领域的专家依靠自身专业性知识背景筛选出他们认为重要的风险因素,通过线性模型(主要是逻辑回归模型)对这些风险因素进行学习和分析,进而对数据错误风险进行预测。(2)使用机器学习模型(例如,遗传算法、xgboost等)代替专家进行风险因素筛选,然后同样基于线性模型进行学习和预测。然而,上述方法都有一个共同的局限性:它们的风险预测模型都是线性模型。尽管线性模型的形式简单、因素间关系直观且容易被非专家解释,但它具有明显劣势:首先,它需要被关注的变量至少具有一定程度的相关性,并且通常还需要主观的建模决策(例如,要包括哪些交互项);其次,它对数据噪声的敏感性和多重共线性可能会产生误导性的结论;第三,线性模型的学习能力有限,当曲线下面积(英文名称:areaundercurve,英文缩写:auc)接近0.9时,基于线性的模型很难进一步改进;第四,也是最重要的一点,线性模型难以学习风险因素间的高维非线性相关关系。综上所述,仅使用线性模型来预测数据错误风险是不充分且不理想的,多个风险因素间的高维非线性交互作用应该予以更多的关注。技术实现要素:本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于非线性集成模型的预测数据错误风险方法,致力于学习高维非线性空间中各种风险因素之间的相互作用,以获得准确的风险评估;解决过于复杂的数据错误风险计算器难以用于实践的问题,对输入的风险因素进行了非主观地筛选,在保证预测精度的同时降低了数据维度和使用难度。本发明采用以下技术方案:一种基于非线性集成模型的预测数据错误风险方法,包括以下步骤:s1、对数据进行预处理,去除无关因素、同效因素和重复因素;s2、对于取值为分类变量形式的风险因素进行数据编码;s3、基于编码数据构建gbdt框架下的数据错误风险预测模型,通过梯度提升算法将若干个cart树的结果进行加权求和后输出为最终结果;s4、使用上一步中确定的参数,使用所有样本作为输入数据,训练一个gbdt模型;然后,取出某一时间段内的所有样本,将取出的样本和全部样本分别输入到训练好的gbdt模型中进行预测;s5、根据训练好的gbdt模型,计算所有输入的风险因素的特征重要性;s6、根据得到的特征重要性,从高到低对所有风险因素进行排序,保留排名前15的风险因素并重新构造数据集;s7、使用步骤s4确定的参数,以新数据集的所有样本作为输入数据,训练一个新的gbdt模型;然后从新数据集中取出与步骤s4中相同时间段内的所有样本,将其和全部样本分别输入到训练好的新gbdt模型中进行预测。具体的,步骤s1具体为:s101、将无关因素和同效因素剔除;s102、找出所有有重复记录的风险因素,如果某一因素拥有分类变量形式的记录,则保留该记录,删除其他重复记录;如果某一因素只有数值变量形式的记录,则保留其中数据质量最高的记录,删除其他重复记录。具体的,步骤s2中,编码规则具体为:对每个风险因素的每个取值都进行编码;对于取值表达着程度上高低关系的风险因素,按照从低到高的顺序进行编码;对于在不同因素中取值有对应关系的风险因素,将按照一致的编码顺序进行编码。具体的,步骤s3具体为:s301、假设包含n个样本的输入数据为x={x1,x2,...,xn},对应的标签为y={y1,y2,...,yn},确定损失函数;s302、gbdt在每轮迭代中创建一棵新的cart树,使用损失函数的负梯度拟合上一轮学习结果的残差,通过最小化损失函数拟合本轮创建的新树;每个cart树的结果加权求和所得得到gbdt的最终结果,选择一个最平行于损失函数负梯度的函数来近似残差,并以最小化该残差作为优化目标,整个gbdt模型不断重复上述迭代优化过程,直到m=m,停止迭代,并返回整个过程中训练的所有cart树,作为最终模型构建gbdt框架;s303、使用多层次网格搜索方法对参数进行选择,确定模型中树的个数、每棵树的深度、每棵树的叶结点个数、每次迭代的采样频次和每次迭代的采样比例。进一步的,步骤s302中,当目前迭代次数m=m,最终模型为:其中,m为最大迭代次数,wm为在第m次迭代中的权重,h为所使用的基学习器。进一步的,步骤s303具体为:s30301、为每个参数设置取值范围;s30302、将参数放入一个集合中,选定其中一个参数,在集合中其他参数不变的情况下遍历所有取值,然后选择结果最好的参数取值;s30303、对集合中的每个参数重复步骤s30302,直到集合中所有参数都得到各自的最优值;s30304、清空集合,选择未选择过的参数放入,然后重复s30302和步骤s30303;s30305、重复步骤s30302、s30303和步骤s30304,直到所有参数得到最优取值。具体的,步骤s5具体为:s501、给定某棵cart树的一个非叶节点k,计算未划分前的基尼值ginik;s502、假设k最终以特征c进行划分,确定特征c在节点k上的重要性vc,k;s503、将特征c在所有非叶节点上的重要性相加,得到特征c在整棵cart树上的重要性vc;s504、将特征c在所有cart树上的重要性相加,得到特征c在整个gbdt模型中的重要性进一步的,步骤s502中,特征c在节点k上的重要性vc,k为:vc,k=ginik-ginikl-ginikr其中,ginikl和ginikr分别为划分后两个子节点的基尼值。进一步的,步骤s503中,特征c在整棵cart树上的重要性vc为:进一步的,步骤s504中,特征c在整个gbdt模型中的重要性为:与现有技术相比,本发明至少具有以下有益效果:本发明一种基于非线性集成模型的预测数据错误风险方法,解决了传统的线性预测模型精度有限且难以学习风险因素间非线性交互作用的问题,预测精度优于现有技术。同时,本发明还可通过机器学习方法对输入数据进行非主观性降维,在保证预测精度优于现有技术的同时降低模型复杂度,提高了数据错误风险计算器在实践中的可使用性。进一步的,对所有数据进行预处理,剔除无关风险因素(如文档性记录等),剔除在所有患者临床数据中取值相同的风险因素。进一步的,找出所有有重复记录的风险因素,保留分类变量形式的记录,删除重复记录。如果没有分类变量形式的记录,则保留质量最高的数值变量形式的记录,删除重复记录。然后对所有数据的分类变量形式的风险因素按照一定规则进行编码。进一步的,将所有数据输入到一个梯度提升树(英文名称:gradientboostingdecisiontree,英文缩写:gbdt)模型中进行训练,参数通过结合相关研究文献和多层网格搜索的结果来确定。同时,计算并记录每个风险因素的特征重要性。进一步的,取出某一时间段内的所有数据,将这批数据与所有数据分别输入到训练好的gbdt模型中进行预测。进一步的,对所有风险因素根据特征重要性从高到低进行排序,保留排名前15的风险因素,重新构造数据集。进一步的,用所有新数据训练一个新的gbdt模型,参数与之前相同。然后分别将与之前同一时间段的新数据和所有新数据输入到训练好的新gbdt模型中进行预测。综上所述,本发明实现了使用非线性的集成模型对数据错误风险的更准确的预测,并且通过对风险因素进行非主观地筛选实现了数据错误风险计算器的可使用性的提高。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明图1为本发明的流程示意图。具体实施方式本发明提供了一种基于非线性集成模型的预测数据错误风险方法,输入数据为数据—风险因素矩阵,其中每一行表示一条需要进行数据质量评估的预测数据,每一列代表一个风险因素。结合实际需要和数据的可用性选择风险因素。标签为每条预测数据的数据质量合格情况,不合格记为1,否则记为0。请参阅图1,本发明一种基于非线性集成模型的预测数据错误风险方法,包括以下步骤:s1、数据预处理由于预测数据通常包含过多风险因素,且其中存在无关因素、同效因素和重复因素,因此需要进行预处理。s101、将无关因素(如文档记录等)和同效因素(在所有患者临床数据中取值相同的因素)剔除s102、找出所有有重复记录的风险因素。如果某一因素拥有分类变量形式的记录(例如,白细胞计数的高、正常和低),则保留该记录,删除其他重复记录。如果某一因素只有数值变量形式的记录,则保留其中数据质量最高的记录,删除其他重复记录。s2、数据编码对于取值为数值变量形式的风险因素不作处理,对于取值为分类变量形式的风险因素,依据以下规则进行编码:(1)对每个风险因素的每个取值都进行编码,例如变量a共有[a1,a2,a3,a4]四个取值,则将它们分别编码为[1,2,3,4];(2)对于取值表达着程度上高低关系的风险因素,按照从低到高的顺序进行编码,例如血清中尿素含量共有正常n、高h、非常高v三种取值,将n编码为1,h为2,v为3;(3)对于在不同因素中取值有着对应关系的风险因素,例如所有用yes和no进行记录的变量,将按照一致的编码顺序进行编码。s3、基于编码数据构建gbdt框架下的数据错误风险预测模型gbdt算法以分类回归树(英文名称:classificationandregressiontree,英文缩写:cart)作为基学习器,以每轮迭代后的残差作为观测值,通过在负梯度上迭代地优化损失函数的方式来构建集成模型,然后通过梯度提升算法将若干个cart树的结果进行加权求和后输出为最终结果。假设包含n个样本的输入数据为x={x1,x2,...,xn},对应的标签为y={y1,y2,...,yn}。s301、确定损失函数本发明所用损失函数为二元对数似然损失函数(英文名称:binarylogarithmiclikelihoodlossfunction,英文缩写:binarylog-loss),其定义为:其中,pi为模型预测的输入样本xi的标签为1的概率。s302、构建gbdt框架gbdt在每轮迭代中都会创建一棵新的cart树,并使用损失函数的负梯度来拟合上一轮学习结果的残差,进而通过最小化损失函数来拟合本轮创建的新树。随着迭代次数的增加,训练过程中产生的残差会不断降低,从而使得加权求和后的结果不断逼近真实值。假设最终得到的最优模型为:为了使其易于处理,可将f(x)的搜索空间限制为搜索最优参数,即改写为参数形式:假设每次迭代中新建立的基学习器方程以参数形式可以表示为h(x,θ)。由于gbdt的最终结果是由每个cart树的结果加权求和所得,因此前t次迭代的结果可表示为:其中,wi、θi分别为在第i次迭代中基学习器的权重和参数。根据树的前向分布算法,上式可改写为:ft(x,θt)=ft-1(x,θt-1)+wth(x,θt)此时,最小化前t次迭代的损失函数可以等价于:使用残差ψ(y,ft-1(x,θt-1))来估计(wt,θt)。当所用损失函数是易于获得残差或参数估计值的函数时,使用梯度下降法可以快速而简单地进行寻优。然而在实践中,一些自定义的损失函数难以做到,因此可以选择一个最平行于损失函数负梯度的函数来近似残差,并以最小化该残差作为优化目标。给定前t-1次迭代的损失函数的负梯度gt(xi),此时可以使用最小二乘法作为一般解决方案来替换困难优化任务,具体为:则上式可改写为:假设最大迭代次数为m,当目前迭代次数m=0时,初始化模型为:其中,θ0分别初始化赋予的参数,c为初始模型拟合的常数。随着迭代的进行,整个gbdt模型将不断重复上述迭代优化过程,直到m=m,停止迭代,并返回整个过程中训练的所有cart树,作为最终模型:s303、选择参数并确定参数取值本发明使用了多层次的网格搜索方法对参数进行选择,主要步骤为:s30301、为每个参数设置取值范围;s30302、选择少量的参数放入一个集合中,选定其中一个参数,在集合中其他参数不变的情况下遍历它的所有取值,然后选择其中结果最好的参数取值;s30303、对集合中的每个参数重复步骤s30302,直到集合中所有参数都得到各自的最优值;s30304、清空集合,选择一些新的未选择过的参数放入,然后重复s30302和步骤s30303;s30305、重复步骤s30302、s30303和步骤s30304,直到所有参数得到最优取值。另外,考虑到使用过多的参数会降低模型的泛化能力,因此对每个参数在其他参数不变的情况下评估它对结果的影响能力,最终选定了5个参数:模型中树的个数(英文名称:thenumberoftrees,取值为500)、每棵树的深度(英文名称:thedepth,取值为5)、每棵树的叶结点个数(英文名称:thenumberofleafnodes,取值为12)、每次迭代的采样频次(英文名称:thebaggingfrequency,取值为1)和每次迭代的采样比例(英文名称:thebaggingfraction,取值为0.1)。其余参数均为默认值。s4、使用上一步中确定的参数,使用所有样本作为输入数据,训练一个gbdt模型。然后,取出某一时间段内的所有样本,将其和全部样本分别输入到训练好的gbdt模型中进行预测。s5、根据训练好的gbdt模型,计算所有输入的风险因素的特征重要性;gbdt模型的基学习器全部为cart树,在cart中,某一特征的重要性可通过计算其在所有非叶节点划分前后的基尼值(英文名称:ginivalue)减少量来评估,减少量越大说明该特征越重要。将该特征在所有树中的重要性相加,可以得到其在整个gbdt模型中的重要性。主要步骤为:s501、给定某棵cart树的一个非叶节点k,计算未划分前的基尼值:其中,pk,i为k中第i类样本所占的比例,i=1,2,...,i。s502、假设k最终以特征c进行划分,ginikl和ginikr分别为划分后两个子节点的基尼值,则特征c在节点k上的重要性为:vc,k=ginik-ginikl-ginikr如果k不以特征c进行划分,则vc,k=0。s503、将特征c在所有非叶节点上的重要性相加,可得其在整棵cart树上的重要性:s504、将特征c在所有cart树上的重要性相加,可得其在整个gbdt模型中的重要性:s6、根据得到的特征重要性,从高到低对所有风险因素进行排序,保留排名前15的风险因素并重新构造数据集;s7、使用与步骤s4中相同的参数,以新数据集的所有样本作为输入数据,训练一个新的gbdt模型;然后,从新数据集中取出与步骤s4中相同时间段内的所有样本,将其和全部样本分别输入到训练好的新gbdt模型中进行预测。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以某地区医院监管部门公布的2010-2012年的临床数据作为实验数据,覆盖普通外科、泌尿外科、整形外科和小儿外科等多个领域,包含15299条患者临床数据、116个风险因素和这些患者数据的质量合格情况(不合格则标签为1,否则为0)。数据在使用前已经经过脱敏处理,删除了任何可能复现患者个人信息的数据特征。本发明在python3.7环境下借助微软第三方库lightgbm(获取途径:https://github.com/microsoft/lightgbm)进行实验。原始数据经过预处理和编码后,转化为包含15299条患者临床数据、66个风险因素的输入矩阵,用来训练一个gbdt模型,随后将全部的三年数据和最后一年的数据分别输入到训练好的模型中进行预测,结果如表1所示。表1.使用全部风险因素时本发明的结果本发明在两组数据上的auc均在0.95以上,hlc均在9以下,对应的p值也远大于0.05,说明本发明同时具有出色的准确度和校准度,这样的效果是基于线性模型的现有技术所难以达到的。为了提高本发明的可使用性,通过计算风险因素的特征重要性,选出最重要的15个风险因素。随后,重新构造包含15299条临床数据、15个风险因素的新输入矩阵,采用与前一实验相同的模型参数,训练了一个新的gbdt模型,并分别将新的三年数据和新的最后一年数据输入其中进行预测,结果如表2所示。表2.使用排名前15的风险因素时本发明的结果auchlchlc对应的p值全部三年数据0.91510.8590.210最后一年数据0.9214.5870.801值得注意的是,该数据集是一个包含了多个不同外科领域的综合性数据集,而同一风险因素在不同领域中的意义可能有所不同,它可能在特定领域中起着关键的作用,但综合来看却没有那么重要。因此,在此数据中,每个风险因素或多或少都会对结果做出一定的贡献,删除它们必然产生一定的负面影响,这也是表2中结果相对于表1而言有所下降的原因。尽管如此,该结果仍然比基于线性模型的现有技术的结果要显著地好。本发明采用了两种在数据错误风险计算器效果评估中常用的评价指标:曲线下面积(auc)——用来评价模型准确度;hosmer-lemeshow检验(英文名称:hosmer-lemeshowtest,英文缩写:hlc)——用来评价模型的校准度。(1)曲线下面积(auc)auc是指“受试者工作特征曲线”(英文名称:receiveroperatingcharacteristiccurve,英文缩写:roc)下的面积,auc越高说明模型的准确度越高。roc是以“假正例率”(英文名称:falsepositiverate,英文缩写:fpr)为横轴、以“真正例率”(英文名称:truepositiverate,英文缩写:tpr)为纵轴来描绘模型预测结果的图像,二者定义分别为:绘图过程为:给定m+个正例和m-个反例,根据模型预测结果从高到低对样本进行排序;将初始分类阈值设为最大,即所有样本的预测均为反例,此时tpr和fpr均为0,即图像初始点为原点;将分类阈值依次设为每个样本的预测值,即依次将每个样本预测为正例,假设前一个样本点坐标为(x,y),当前样本点若为真正例,则其坐标为否则为在图中绘出所有坐标点后,以线段相连,所得图像即roc。给定roc中所有点的坐标{(x1,y1),(x2,y2),...,(xm,ym)}(x1=0,xm=1),可得:(2)hosmer-lemeshow检验(hlc)hosmer-lemeshow检验是判断模型拟合优度的一种检验方法,用来评价预测值与标签的重合程度。在得到概率形式的模型预测值后,将所有样本的模型预测值按从小到大的顺序排列,并将等分为若干组。同时,样本相对应的标签也被分为相同组数。然后,hosmer-lemeshow检验的卡方统计量由下式计算得到:其中,g为分组数,og和eg分别为组g内标签值的和及预测值的和,ng为组g内样本个数,πg为组g内预测值的均值;hlc反映了预测值与标签的偏离程度,hlc越小,二者的拟合程度越高,模型的校准度越高。综上所述,本发明一种基于非线性集成模型的预测数据错误风险方法,与现有的基于线性模型的数据错误风险计算器相比较,由于采用了可以捕捉风险因素间非线性交互作用的非线性集成模型,从而使得本发明克服了现有技术在性能上的瓶颈,具有准确度上和校准度上的双重优势。第9部分中在真实临床数据上的实验,证明了本发明具有更好的效果和性能。以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1