基于低差异度数列交叉检验的数据分类优化方法及系统与流程

文档序号:11407818阅读:458来源:国知局
基于低差异度数列交叉检验的数据分类优化方法及系统与流程

本发明属于数据挖掘和机器学习分类领域,尤其涉及一种基于低差异度数列交叉检验的数据分类优化方法及系统。



背景技术:

目前,监督机器学习(supervisedmachinelearning)技术在人工智能辅助医疗数据分类的已经开始得到应用。其思想为用一个监督机器学习分类算法统计模型(下简称分类学习模型),通过统计大量已经被人类分类的医疗历史数据,来学习人类的分类能力,从而达到辅助人类来准确对医疗数据进行分类的目的。通常情况下,其实施流程为:

(1)首先收集一个数据集,内含大量就诊人员的临床诊断历史数据,其中包括这些就诊人员的各种医学和生化检验的特征信息(比如血压,心率等特征)和就诊人员的分类标签(比如把就诊人员分成健康人员或病患,轻度患病或重度患病,就诊人员的细胞存活或死亡等类别);(2)然后采用一种监督机器学习方法,设立一个分类学习模型(比如,采用逻辑回归算法,建立一个线性回归模型),对这个数据集做交叉验证(crossvalidation,亦称循环估计)。交叉验证包括训练和测试两个部分。通常情况下,该数据集的样本被随机分入到k个子集里,利用k-1个子集来训练模型,映射训练集中就诊人员的特征和和医生的诊断分类之间的关系。余下一个子集作来对之前训练好的模型进行测试,衡量之前在训练集中得到的特征和诊断分类之间的映射关系是否也存在于测试集的数据里,由此得到一个预测分类准确率。(3)如果准确率达到或超过预先设定的合格分类水平,则该统计模型通过交叉检验,可以直接被部署应用;如果准确度不高,则需要研究人员修改统计模型或使用另外一种监督机器学习方法,重做交叉测试,直到通过为止。

理想的交叉检验方法必须遵守子集代表性(representativesubsets)条件。也就是说每个子集必须从全部样本历史数据(下简称全部样本数据)中均匀取样。均匀取样的目的是希望减少每个子集与全部数据之间的偏差,使得特征和诊断分类之间的映射关系在每个子集里都能很好得存在。这k个子集数据应为全部样本数据的有代表性的缩小版,尽最大可能地保留全部样本数据的特征和诊断分类之间的映射信息。其中,最常用的交叉检验方法是随机10-折交叉检验(randomk-foldcrossvalidation,k=10)。

该方法先对全部样本数据中得每个样本的序号进行编号。然后利用一个计算机生产的伪随机数列(pseudorandomnumbersequence)。该数列所有数字为不重复的整数,最小为1,最大为全部样本数据的样本量。这些数字在该数列里排列的次序为随机的。每个数字对应全部样本数据一个样本的序号。先将该伪随机数列分成10个等份,然后把每个等份里的伪随机数所对应的全部样本数据样本抽出放入到一个子集中,依次把全部样本数据样本分配到10个子集里。

每次实验轮流用取一份子集做测试集,余下的9份作为训练集。每次先在训练集上训练模型,得到相应的假设统计模型,然后用测试集测试假设统计模型,计算该模型的预测分类准确率。随机k折交叉检验需要循环进行k次实验,即每一子集都会作为一次测试集,因此会得到k个预测分类准确率。最后取这k个预测分类准确率的平均值(以下称为k折平均预测分类准确率)为该模型的评价指标,用于跟预先设定的合格分类水平进行比较。

这种交叉检验方法依赖一个计算机生成的伪随机数列,而伪随机数列的产生则依赖于随机种子。使用一个伪随机数列划分子集会对于随机种子非常敏感。如果使用不同的随机种子,每次做交叉检验,都会划分都可能把全部样本数据样本划分到不同的子集里。如果同一个模型重复做若干次交叉检验,每次交叉验证的时候会得到不同的k折平均预测分类准确率。因此,为了抵消随机数列带来的子集不确定性,研究人员往往需要用不同的随机种子重复几十次该交叉检验过程,然后对这几十个k折平均预测分类准确率求平均值,作为该模型的预测分类准确率。但是重复几十次不光计算成本较大,而且也不能很好地解决子集缺乏代表性问题。也就是说,即使重复几十次交叉检验,每个子集的预测分类准确率依然差别很大(即子集之间的预测分类准确率标准方差较大,最好和最低预测分类准确率的间距较大)。

综上所述,针对医疗信息系统的数据库内的样本数据做交叉检验的过程中,往往采用现有的随机k折交叉检验方法来对当前训练完成的分类学习模型进行交叉检验,以评估其预测分类准确率,比如:

对1000个来自医疗信息系统的数据库内的心脏样本数据进行分类,其中,每个心脏数据样本的分类标签为健康和不健康,每个心脏样本的生化检验的特征信息(包括每个心脏所属患者的年龄、性别、胸部疼痛类别、静止血压、血清胆固醇含量、空腹血糖和最大心率);将1000个心脏样本数据随机分到10个子集中,利用这10个子集来对一个分类学习模型进行交叉检验。由于每个子集内的心脏数据样本依赖一个计算机生成的伪随机数列,使用一个伪随机数列划分的这10个子集缺乏代表性,该模型极有可能在训练的时候不能很好地反映特征和分类标签的映射关系,因此测试效果不好或无意义,导致研究人员对该分类学习模型作出错误的评估,进而降低了医疗数据分类的效率。



技术实现要素:

为了解决上述技术问题,本发明的第一目的是提供一种基于低差异度数列交叉检验的数据分类优化方法。该方法能够提高模型交叉检验的效率。

本发明的一种基于低差异度数列交叉检验的数据分类优化方法,包括:

步骤1:从医疗信息系统的数据库中提取就诊人员历史医疗数据,所述就诊人员历史医疗数据包括分类标签和生化检验的特征信息;利用提取的就诊人员历史医疗数据构建出样本数据矩阵;

步骤2:对样本数据矩阵进行降维处理得到的一维数列作为抽样框架,再结合一个均匀分布的低差异度数列,将提取的医疗数据样本数据矩阵均匀分成k个子集;其中k为大于1的正整数;

步骤3:根据一个监督机器学习分类算法,构建一个分类学习模型,用k个子集中的数据进行交叉检验;其中用k-1个子集训练该分类学习模型,得到该分类学习模型的各项系数;然后用余下的一个子集做测试,得到该分类学习模型的预测分类准确率;依次循环k次,最后对得到的k个预测分类准确率求平均值,得到该分类学习模型的平均预测分类准确率;

步骤4:判断该分类学习模型的平均预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则该分类学习模型符合要求;否则,提示研究人员修改该分类学习模型或使用另外一个监督机器学习分类算法构建新的模型,返回步骤3。

该方法还包括:将待分类的医疗数据输入至符合要求的分类学习模型中进行分类并输出分类结果。

进一步的,所述步骤1中的样本数据矩阵的第一列由相应就诊人员样本的分类标签构成,其他列由相应就诊人员样本的生化检验的特征信息构成。

其中,就诊人员样本的分类标签包括就诊人员的细胞存活和死亡,或就诊人员健康和就诊人员不健康,疾病验证轻微或严重等。

就诊人员样本的生化检验的特征信息包括血压、心率、血糖含量和血细胞含量。除了上述生化检验的特征信息之外,还包括其他现有特征信息,此处将不再举例说明。

进一步的,所述步骤2的具体过程,包括:

步骤2.1:构建由至少一种降维方法组成的降维方法集合,利用降维方法分别对样本数据矩阵进行降维处理,得到相应一维数列;再分别对相应一维数列进行离差标准化,得到相应离差标准化一维数列;离差标准化一维数列中每个数据的取值均介于0-1之间,且小数点后保留预设位数(比如保留3位或4位等);

步骤2.2:利用圆周率π的正整数倍的小数部分构建一系列低差异数,并且使得该低差异数的小数点后保留数字位数与步骤2.1预设小数点后保留数字位数相等;

比较每个低差异数和离差标准化一维数列中数据的大小,将与所述低差异度数相等的数据逐个分配到预设的k个临时容器里;一直循环本步骤,直到把离差标准化一维数列的数值分配到k个临时容器里,每个临时容器为一个子集。

由于k个临时容器里每个离差标准化一维数列上的数字对应样本数据矩阵中的一个样本(即矩阵的一行),可以从样本数据矩阵相对应的样本分配到相对应的k个子集中。每个子集中的样本数相等,且子集样本数的总和等于全集数据矩阵中所代表的样本数。

进一步的,本发明采用降维方法来保留样本数据矩阵的最重要信息,降维后的离差标准化一维数列作为抽样框架(samplingframe)。

不同的降维方法保留样本数据矩阵信息的程度会略有不同。

降维方法可以使用:主成分分析方法、核主成分分析方法、因子分析方法、截断奇异值分解方法和多维度尺度分析方法,或者其他现有的降维方法。

本发明可以使用单个降维方法,也可以用降维方法集合来包括两个、三个或其他数量的降维方法,依次对样本数据矩阵进行降维。

进一步的,本发明需要用一个低差异数在离差标准化一维数列中匹配相等的数值。小数点后保留预设位数会影响匹配的精度,位数越多,精度越高,但计算时间越长。保留预设位数可以设为3位,4位,5位或6位。

进一步的,所述步骤3具体包括:

步骤3.1:根据一个监督机器学习分类算法,建立一个分类学习模型;

其中,监督机器学习分类算法可以包括任何一种现成的监督机器学习分类算法,比如逻辑回归,神经网络、决策树或朴素贝叶斯;分类学习模型是一个算法的实施实例,比如一个线性回归模型是逻辑回归算法的实施实例;

步骤3.2:使用上述k个子集的数据对该分类学习模型进行循环交叉验证,得到相应k个预测分类准确率并存储至一个临时结果集合内;

步骤3.3:对临时结果集合中的k个预测分类准确率求平均值,将该平均值存入平均预测准确率集合中。

本发明采用保留样本数据矩阵的最重要信息的一维数列作为抽样框架(samplingframe)和低差异度数列均匀分布的性质,本发明能实现每个子集之间差异度较小且都能代表样本数据矩阵的信息,提高分类学习模型的训练效率,从而降低每个子集之间的预测分类准确率的差异,也进一步提高最终的k折平均预测分类准确率。

本发明的第二目的是提供一种基于低差异度数列交叉检验的数据分类优化系统。

本发明的一种基于低差异度数列交叉检验的数据分类优化系统,包括:

样本数据导入模块,其用于从医疗信息系统的数据库中提取就诊人员历史医疗数据,所述就诊人员历史医疗数据包括分类标签和生化检验的特征信息;利用提取的就诊人员历史医疗数据构建出样本数据矩阵;

子集数据分配模块,其用于对样本数据矩阵进行降维处理得到的一维数列作为抽样框架,再结合一个均匀分布的低差异度数列,将提取的医疗数据样本数据矩阵均匀分成k个子集;其中k为大于1的正整数;

交叉检验模块,其用于根据一个监督机器学习分类算法,构建一个分类学习模型,用k个子集中的数据进行交叉检验;其中用k-1个子集训练该分类学习模型,得到该分类学习模型的各项系数;然后用余下的一个子集做测试,得到该分类学习模型的预测分类准确率;依次循环k次,最后对得到的k个预测分类准确率求平均值,得到该分类学习模型的平均预测分类准确率;

分类学习模型优化模块,其用于判断该分类学习模型的平均预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则该分类学习模型符合要求;否则,提示研究人员修改该分类学习模型或使用另外一个监督机器学习分类算法构建新的模型。

该系统还包括:数据分类模块,其用于将待分类的医疗数据输入至符合要求的分类学习模型中进行分类并输出分类结果。

进一步的,在所述样本数据导入模块中,样本数据矩阵的每一行代表一个就诊人员样本,样本数据矩阵的列由相应就诊人员样本的分类标签和生化检验的特征信息构成。

其中,就诊人员样本的分类标签包括就诊人员存活和就诊人员死亡,或就诊人员健康和就诊人员不健康,疾病严重程度轻和高。就诊人员样本的生化检验的特征信息包括血压、心率、血糖含量和血细胞含量。

除了上述生化检验的特征信息之外,还包括其他现有特征信息,此处将不再举例说明。

进一步的,所述子集数据分配模块,包括:

降维模块,其用于构建由至少一种降维方法组成的降维方法集合,利用降维方法分别对样本数据矩阵进行降维处理,得到相应一维数列;再分别对相应一维数列进行离差标准化,得到相应离差标准化一维数列;离差标准化一维数列中每个数据的取值均介于0-1之间,且小数点后保留预设位数(比如保留3位或4位等);

样本数据分配模块,其用于利用圆周率π的正整数倍的小数部分构建一系列低差异数,并且使得该低差异数的小数点后保留数字位数与预设小数点后保留数字位数相等;

比较每个低差异数和离差标准化一维数列中数据的大小,将与所述低差异度数相等的数据逐个分配到预设的k个临时容器里;一直循环本步骤,直到把离差标准化一维数列的数值分配到k个临时容器里,每个临时容器为一个子集。

由于k个临时容器里每个离差标准化一维数列上的数字对应样本数据矩阵中的一个样本(即矩阵的一行),可以从样本数据矩阵相对应的样本分配到相对应的k个子集中。每个子集中的样本数相等,且子集样本数的总和等于全集数据矩阵中所代表的样本数。

进一步的,本发明采用降维方法来保留样本数据矩阵的最重要信息,降维后的离差标准化一维数列作为抽样框架(samplingframe)。

不同的降维方法保留样本数据矩阵信息的程度会略有不同。

降维方法可以使用:主成分分析方法、核主成分分析方法、因子分析方法、截断奇异值分解方法和多维度尺度分析方法,或者其他现有的降维方法。

本发明可以使用单个降维方法,也可以用降维方法集合来包括两个、三个或其他数量的降维方法,依次对样本数据矩阵进行降维。

进一步的,本发明需要用一个低差异数在离差标准化一维数列中匹配相等的数值。小数点后保留预设位数会影响匹配的精度,位数越多,精度越高,但计算时间越长。保留预设位数可以设为3位,4位,5位或6位。

进一步的,所述交叉检验模块,包括:

分类学习模型构建模块,其用于根据一个监督机器学习分类算法,建立一个分类学习模型;其中,监督机器学习分类算法可以包括任何一种现成的监督机器学习分类算法,比如逻辑回归,神经网络、决策树或朴素贝叶斯;分类学习模型是一个算法的实施实例,比如一个线性回归模型是逻辑回归算法的实施实例;

预测分类准确率存储模块,其用于使用上述k个子集的数据对该分类学习模型进行循环交叉验证,得到相应k个预测分类准确率并存储至一个临时结果集合内;

平均预测分类准确率计算模块,其用于对临时结果集合中的k个预测分类准确率求平均值,将该平均值存入平均预测准确率集合中。

本发明还提供另一种基于低差异度数列交叉检验的医疗数据分类学习模型优化的系统。

本发明的另一种基于低差异度数列交叉检验的医疗数据分类学习模型优化的系统,包括:

数据采集装置,其被配置为:从医疗信息系统的数据库中提取就诊人员历史数据;所述就诊人员历史数据包括分类标签和生化检验的特征信息;及

数据分类优化服务器,其被配置为:

接收就诊人员历史医疗数据,构建样本数据矩阵,对样本数据矩阵进行降维处理得到的一维数列作为抽样框架,再结合一个均匀分布的低差异度数列,将提取的医疗数据样本数据矩阵均匀分成k个子集;

根据一个监督机器学习分类算法,构建一个分类学习模型,用k个子集中的数据进行交叉检验。其中用k-1个子集训练该模型,得到该模型的各项系数。然后用余下的一个子集做测试,得到预测分类准确率。依次循环k次,最后对这k个预测分类准确率求平均值;

判断该分类学习模型的k折平均预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则该分类学习模型符合要求;否则,提示研究人员修改该分类学习模型或使用另外一个监督机器学习分类算法构建新的模型。

进一步的,所述数据分类优化服务器,还被配置为:

将待分类的医疗数据输入至符合要求的分类学习模型中进行分类并输出分类结果。

进一步的,所述数据分类优化服务器,还被配置为:

利用降维方法分别对样本数据矩阵进行降维处理,得到相应一维数列;再分别对相应一维数列进行离差标准化,得到相应离差标准化一维数列;离差标准化一维数列中每个数据的取值均介于0-1之间,且小数点后保留预设位数;

利用圆周率π的正整数倍的小数部分构建一系列低差异数,并且使得该低差异数的小数点后保留数字位数与步骤2.1预设小数点后保留数字位数相等。比较小数点后保留预设位数的离差标准化一维数列和一个低差异度数列中数据的大小,将与所述低差异度数列中相等的数据逐个分配到预设的k个临时容器里。一直循环直到把一维数列的数值分配到k个临时容器里,每个临时容器为一个子集。

由于k个临时容器里每个一维数列上的数字对应样本数据矩阵中的一个样本(即矩阵的一行),可以从样本数据矩阵相对应的样本分配到相对应的k个子集中。每个子集中的样本数相等,且子集样本数的总和等于全集数据矩阵中所代表的样本数。

建立一个监督机器学习分类学习模型。使用上述k个子集的数据对该分类学习模型进行循环交叉验证,得到相应预测分类准确率并存储至一个临时结果集合内。对临时结果集合中的k个预测分类准确率求平均值,将该平均值存入预测准确率集合中。

最后判断医疗数据的分类学习模型的预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则医疗数据的分类学习模型符合要求,则可以部署该模型,将新的待分类的医疗数据至该模型进行分类并输出分类结果;否则,继续对分类学习模型进行修改或使用另外一种监督机器学习分类算法构建新的模型。

与现有技术相比,本发明的有益效果是:

本发明利用超越数π(圆周率)的小数点后数字有无限不循环的特征来产生一个均匀分布的低差异度数列,来取代目前随机k-折交叉检验技术中使用的一个随机数列,然后利用降维方法来保留样本数据矩阵的最重要信息到一个一维数列,该一维数列离差标准化后作为抽样框架。利用这两个数列可以将全部样本数据均匀地分成若干个子集,实现子集之间的低差异度,进而能够得到当前训练完成的分类学习模型可靠的预测分类准确率,而且在无需改进具体机器学习算法的情况下,大大提高了分类学习模型的训练效率,减少了交叉检验计算时间,最终减少了医疗数据分类过程的时间,提高了医疗数据分类的效率。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1是本发明的一种基于低差异度数列交叉检验的医疗数据分类学习模型优化方法的流程图。

图2是本发明的一种基于低差异度数列交叉检验的医疗数据分类学习模型优化方法的具体实施流程图。

图3是将样本数据矩阵均匀分成k个子集。

图4是子集对分类学习模型进行交叉验证的流程图。

图5是本发明的一种基于低差异度数列交叉检验的数据分类优化系统结构示意图。

图6是本发明的另一种基于低差异度数列交叉检验的数据分类优化系统结构示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

图1是本发明的一种基于低差异度数列交叉检验的数据分类优化方法的流程图。

如图1所示的基于低差异度数列交叉检验的数据分类优化方法,包括:

步骤1:从医疗信息系统的数据库中提取就诊人员历史医疗数据,所述就诊人员历史医疗数据包括分类标签和生化检验的特征信息;利用提取的就诊人员历史医疗数据构建出样本数据矩阵。

具体地,就诊人员样本的分类标签包括就诊人员存活和就诊人员死亡,或就诊人员健康和就诊人员不健康,或疾病验证轻微或严重等。

就诊人员样本的生化检验的特征信息包括血压、心率、血糖含量和血细胞含量。除了上述生化检验的特征信息之外,还包括其他现有特征信息,此处将不再举例说明。

下面以样本为美国克利夫兰市医院的心脏病就诊数据为例:

从医疗数据库获得297个就诊人员的历史数据,得到297个就诊人员样本,就诊人员的分类标签为心血管造影疾病严重状况,从0到4,“0”表示正常,“4”表示心血管的直径严重变小或严重堵塞,“1-3”表示心血管的直径严重变小不同程度或严重堵塞不同程度。

就诊人员样本的生化检验的特征信息包括:年龄,性别,胸部疼痛类别,静止血压,血清胆固醇含量,空腹血糖,心电图结果,最大心率,运动引起的心绞痛,相对于其余的运动诱发心电图st段压低值,心电图st段的斜率,大血管被透视着色数及地贫因素。

全部样本数据矩阵r是一个297行*14列的矩阵。

在该步骤中,通过计算样本数据矩阵r的行数,即可得到样本数据矩阵r中的样本总量s。本例s=297,而且本实施例设定子集数k=10,那么继续可计算出10个子集里每个子集的样本数w,w=s/k且w取整数,即w=30。

步骤2:对样本数据矩阵进行降维处理得到的一维数列,再结合一个均匀分布的低差异度数列,将提取的就诊人员历史医疗数据均匀分成k个子集。

具体地,如图2和3所示,所述步骤2的具体过程,包括:

步骤2.1:构建由至少一种降维方法组成的降维方法集合,利用降维方法分别对样本数据矩阵进行降维处理,得到相应一维数列;再分别对相应一维数列进行离差标准化,得到相应离差标准化一维数列;离差标准化一维数列中每个数据的取值均介于0-1之间,且小数点后保留预设位数(比如保留3位或4位等);

步骤2.2:利用圆周率π的正整数倍的小数部分构建一系列低差异数,并且使得该低差异数的小数点后保留数字位数与步骤2.1预设小数点后保留数字位数相等。比较每个低差异数和离差标准化一维数列中数据的大小,将与所述低差异度数相等的数据逐个分配到预设的k个临时容器里。一直循环本步骤,直到把离差标准化一维数列的数值分配到k个临时容器里,每个临时容器为一个子集。由于k个临时容器里每个离差标准化一维数列上的数字对应样本数据矩阵中的一个样本(即矩阵的一行),可以从样本数据矩阵相对应的样本分配到相对应的k个子集中。每个子集中的样本数相等,且子集样本数的总和等于全集数据矩阵中所代表的样本数。

在具体实施中,设置降维方法集合,可以只使用一个降维方法,也可以包括两个、三个或其他数量。需要说明的是,降维方法可以是任何现有的降维方法,比如主成分分析方法、核主成分分析方法、因子分析方法、截断奇异值分解方法和多维度尺度分析方法。

在该步骤中,如图2和3所示,具体的步骤2.1过程包括:

a)初始化降维方法编号f为0(即第一种方法);

b)判断降维方法编号f是否是4(即最后一种方法)。如果为否,则:

b.1.)使用当前降维方法将全部样本数据矩阵降到一维数列ζ(即从14列降到只有一列)。

b.2.)对ζ进行离差标准化,得到z_ζ(即值介于0-1之间)。接下来执行步骤2.2,降维方法编号f自增1,之后返回b)。

c)如果降维方法编号f等于4(即最后一种方法),接下来执行步骤4:

具体的步骤2.2过程包括

步骤2.2.1:设置小数点保留数字的位数

具体地,

a)初始化小数点保留数字的位数d为3。

b)判断d是否为6,如果为否,则进入步骤2.2.2。

c)如果d等于6,则降维方法编号f自增一(即指向下一个降维方法),循环执行该步骤,直到降维方法编号f等于4(即最后一种方法)。

需要说明的是,设置小数点保留数字的位数是为了设置不同的匹配精度,保留位数越高越精确但计算时间越多。

步骤2.2.2:分配样本数据至k个子集(k=10)

具体地,如图2和3所示,

a)从之前的几个步骤输入全集数据矩阵r,每个子集的样本数w,子集数k,离差标准化后的一维数列z_ζ和小数点后保留的位数d。在本例中,样本数据矩阵r是一个297行x14列的矩阵。w为30。k为10个子集。

b)将z_ζ中的每个数字只保留小数点后d位,d已经在步骤2.2.1中设置好。

c)初始化g等于1。

d)初始化单个子集内已有的样本量s为0。

e)设置空集合k,内含k个空子集,初始化当前子集编号k_id为0(即指向第一个空子集)。

f)为当前子集选择样本:

f.1)判断k_id是否等于k-1(即k中的最后一个子集),如果为否,则:

f.1.1)判断当前子集内已有的样本量s已经等于w,如果为否,则:

●产生一个低差异数lds,使之等于g与圆周率(即3.141592653589793238462)的积的小数部分,保留小数点后d位。

●在z_ζ内找到与lds一致的数字a。

●获取a在z_l内的正向序号a_i。在r中获得a_i所对应的那行数据,存入当前子集中。

●a的值改为999,使得a永不会再被选中。

·s自增一。

·g自增一。

·循环执行f.1.1步骤,直到s=w

f.1.2.)如果当前子集内已有的样本量s已经等于w,则子集编号k_id自增一

f.1.3.)s归零。

f.1.4.)循环执行f.1.步骤,直到当前子集是k中的最后一个子集。

f.2)如果当前子集是k中的最后一个子集,则将r中余下未被选的数据放入最后一个子集。

g)返回k,内含k个子集数据(在本例中,为10个子集)。执行步骤3。

步骤3,用k个子集数据对该分类学习模型进行交叉验证(其中包含训练和测试),得到若干个相应的预测分类准确率指标,并存储至预测分类准确率集合内。

具体地,如图4所示:

a)从步骤2输入k(在本例中,为10个子集)。

b)初始化当前测试集编号test_id=0(即指向k中的第一个子集数据)。

b.1.)判断test_id是否等于k-1(即当前测试集已经是k个子集中的最后一个),如果为否,则:

b.1.1.)将当前测试集之外的k中其他子集合并,作为训练集。

b.1.2.)利用训练子集训练一个监督机器学习算法的统计模型,比如逻辑回归(logisticregression),朴素贝叶斯(bayes),支持向量机(supportvectormachine)和决策树(decisiontree)等等。本例使用逻辑回归算法,建立一个多分量的逻辑回归模型。用训练子集的数据得出该回归模型的13个特征变量的回归系数。

b.1.3.)使用测试子集检验b.1.2中训练好的统计模型。即把测试子集的13个特征列代入b.1.2中得到多分量的逻辑回归模型,通过分别乘以b.1.2中得到的回归系数,预测出测试子集里每个样本的分类标签(在本例中为心血管造影疾病严重状况的五个等级)。通过对比预测出测试子集里每个样本的预测分类标签和实际分类标签,计算出在这个测试子集中,该统计模型的预测准确率。

b.1.4.记录在这个测试子集中,该统计模型的预测准确率到一个临时预测准确率集合中。

b.1.5.)测试集编号test_id自增一,指向k中的下一个子集数据。循环执行b步骤,直到判断测试集已经是k个子集中的最后一个。

c)测试集已经是k个子集中的最后一个,则计算k次循环后该外部机器学习算法模型泛化指标的平均值,即求临时预测准确率集合中的10个数值的平均值(称作k折平均预测分类准确率),存储入一个平均预测准确率集合中。

d)接下来返回步骤2。

步骤4:步骤2和步骤3的循环完成后,平均预测准确率集合中共包含20个k折平均预测分类准确率(即4x5,小数点后保留位数d的四种设置乘以五种降维方法f)。在这个20个指标里找到最高者,判断其是否大于或等于预设预测分类准确率阈值,若是,则该分类学习模型符合要求;否则,提示研究人员修改该分类学习模型或使用另外一个监督机器学习分类算法构建新的模型,返回步骤3。

该方法还包括:将待分类的医疗数据输入至符合要求的分类学习模型中进行分类并输出分类结果。

在本例中,由于10个子集之间差异度较小,都能代表全集矩阵的信息,该逻辑回归模型得到了很好的训练,所以最佳的平均预测分类准确率为60.51%,10个子集之间的预测分类准确率很接近(最高和最低预测分类准确率间的差距为20%,标准方差为0.058)。该逻辑回归模型也用传统的随机10-折交叉检验来训练和测试,并且重复30次(即用30个不同的随机种子产生30个不同的伪随机数列),平均预测分类准确率为57.91%(最高和最低预测分类准确率间的差距为50%,标准方差为0.083)。

为了证明本方法的有益结果,使用另外8个医学数据集做对比(见表一)。进一步地,我们使用另外一种分类算法--决策树(一种非参数、非线性分类算法)对这些数据集分别用本发明和传统随机10折交叉检验法做分析。对比结果显示在表二和表三。

表一9个医学数据集描述性统计

注明:标签不均匀度指的是样本分类标签的分布是否均匀(0为最均匀)

表二逻辑回归交叉检验结果对比

表三决策树交叉检验结果对比

实验结果表明,在使用同一种机器学习算法且参数设置完全相同的情况下,使用本方法训练和测试模型后,逻辑回归分类算法的准确率(classificationaccuracy)平均提高了1%,最高和最低预测准确率区间变小了100%,标准方差(variance)降低18%;决策树算类方法的准确率平均提高了31%,最高和最低预测准确率区间变小了149%,方差降低40%。实验证明,由于本发明能明显降低训练集和测试集之间的差异度,研究人员在不改进监督机器学习分类算法的情况下,使用本发明来训练统计模型,预测分类准确率有明显的提升且和稳定性能指标更好(即最高和最低预测准确率区间和标准方差都变得更小)。

本发明的该方法利用超越数π(圆周率)的小数点后数字有无限不循环的特征来产生一个均匀分布的低差异度数列,来取代目前随机k-折交叉检验技术中使用的一个随机数列,然后利用降维方法来保留样本数据矩阵的最重要信息到一个一维数列作为抽样框架(samplingframe),利用这两个数列可以将全部样本数据均匀地分成若干个子集,实现子集之间的低差异度,进而能够得到当前训练完成的分类学习模型可靠的预测分类准确率,而且在无需改进具体机器学习算法的情况下,大大提高了预设分类学习模型的训练效率,减少了交叉检验计算时间,最终减少了医疗数据分类过程的时间,提高了医疗数据分类的效率。

图5是本发明的一种基于低差异度数列交叉检验的数据分类优化系统结构示意图。

如图5所示,本发明的一种基于低差异度数列交叉检验的数据分类优化系统,包括:

(a)样本数据导入模块,其用于(1)从医疗信息系统的关系型数据库中提取多个就诊人员的历史数据,生成一个全集数据矩阵,每一行是一个就诊者样本,第一列为就诊者的医生诊断分类标签(比如健康或不健康,轻度患病或严重患病,存活或死亡等等),其余的每一列是就诊者的一个特征(比如血压,心率等);需要说明的是,这样能够快速准确地查看就诊人员样本的分类标签,但是就诊人员样本的分类标签也可以设置在其他列,并不影响本发明的整体交叉检验方法的效果。(2)计算全集数据矩阵的总样本数,以及平均分配到k个子集里的每个子集的样本数。

下面以样本为美国克利夫兰市医院的心脏病就诊数据为例说明:

从医疗数据库获得297个就诊人员的历史数据,得到297个就诊人员样本,就诊人员的分类标签为心血管造影疾病严重状况,从0到4,“0”表示正常,“4”表示心血管的直径严重变小或严重堵塞,“1-3”表示心血管的直径严重变小不同程度或严重堵塞不同程度。

就诊人员样本的生化检验的特征信息包括:年龄,性别,胸部疼痛类别,静止血压,血清胆固醇含量,空腹血糖,心电图结果,最大心率,运动引起的心绞痛,相对于其余的运动诱发心电图st段压低值,心电图st段的斜率,大血管被透视着色数及地贫因素。

通过计算样本数据矩阵r的行数,即可得到样本数据矩阵r中的样本总量s。本例s=297,而且本实施例设定子集数k=10,那么继续可计算出10个子集里每个子集的样本数w,w=s/k且w取整数,即w=30。

(b)子集数据分配模块,其用于对样本数据矩阵进行降维处理得到的一维数列作为抽样框架,再结合一个均匀分布的低差异度数列,将提取的医疗数据样本数据矩阵均匀分成k个子集;其中k为大于1的正整数。

所述子集数据分配模块,包括:

降维模块,其用于构建由至少一种降维方法组成的降维方法集合,利用降维方法分别对样本数据矩阵进行降维处理,得到相应一维数列;再分别对相应一维数列进行离差标准化,得到相应离差标准化一维数列;离差标准化一维数列中每个数据的取值均介于0-1之间,且小数点后保留预设位数(比如保留3位或4位等);

样本数据分配模块,其用于利用圆周率π的正整数倍的小数部分构建一系列低差异数,并且使得该低差异数的小数点后保留数字位数与预设小数点后保留数字位数相等;

比较每个低差异数和离差标准化一维数列中数据的大小,将与所述低差异度数相等的数据逐个分配到预设的k个临时容器里;一直循环本步骤,直到把离差标准化一维数列的数值分配到k个临时容器里,每个临时容器为一个子集。

由于k个临时容器里每个离差标准化一维数列上的数字对应样本数据矩阵中的一个样本(即矩阵的一行),可以从样本数据矩阵相对应的样本分配到相对应的k个子集中。每个子集中的样本数相等,且子集样本数的总和等于全集数据矩阵中所代表的样本数。

进一步的,本发明采用降维方法来保留样本数据矩阵的最重要信息,降维后的离差标准化一维数列作为抽样框架(samplingframe)。

不同的降维方法保留样本数据矩阵信息的程度会略有不同。

降维方法可以使用:主成分分析方法、核主成分分析方法、因子分析方法、截断奇异值分解方法和多维度尺度分析方法,或者其他现有的降维方法。

本发明可以使用单个降维方法,也可以用降维方法集合来包括两个、三个或其他数量的降维方法,依次对样本数据矩阵进行降维。

进一步的,本发明需要用一个低差异数在离差标准化一维数列中匹配相等的数值。小数点后保留预设位数会影响匹配的精度,位数越多,精度越高,但计算时间越长。保留预设位数可以设为3位,4位,5位或6位。

(c)交叉检验模块,其用于(1)根据一种监督机器学习分类算法,建立一个统计模型(比如使用逻辑回归算法,建立一个线性回归模型);(2)用样本数据分配模块中得到的k个子集数据,对该统计模型进行循环交叉检验;(3)保存所获得的预测分类准确率到临时集合中;(4)对临时集合中的k个预测分类准确率求平均值,将该平均值存入预测准确率集合中。

需要说明的是,在所述交叉检验模块中建立一个监督机器学习分类学习模型。监督机器学习分类算法可以包括任何一种现成的监督机器学习分类算法,比如逻辑回归,神经网络、决策树或朴素贝叶斯。分类学习模型是一个算法的实施实例。比如一个线性回归模型是逻辑回归算法的实施实例。

(d)分类学习模型优化模块,其用于判断该分类学习模型的平均预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则该分类学习模型符合要求;否则,提示研究人员修改该分类学习模型或使用另外一个监督机器学习分类算法构建新的模型。

该系统还包括:数据分类模块,其用于将待分类的医疗数据输入至符合要求的分类学习模型中进行分类并输出分类结果。

本发明的该系统利用超越数π(圆周率)的小数点后数字有无限不循环的特征来产生一个均匀分布的低差异度数列,来取代目前随机k-折交叉检验技术中使用的一个随机数列,然后利用降维方法来保留样本数据矩阵的最重要信息到一个一维数列作为抽样框架(samplingframe),利用这两个数列可以将全部样本数据均匀地分成若干个子集,实现子集之间的低差异度,进而能够得到当前训练完成的分类学习模型可靠的预测分类准确率,而且在无需改进具体机器学习算法的情况下,大大提高了预设分类学习模型的训练效率,减少了交叉检验计算时间,最终减少了医疗数据分类过程的时间,提高了医疗数据分类的效率。

图6是本发明的另一种基于低差异度数列交叉检验的数据分类优化系统结构示意图。

如图6所示,本发明的另一种基于低差异度数列交叉检验的数据分类优化系统,包括:数据采集装置和数据分类优化服务器。

(1)数据采集装置,其被配置为:从医疗信息系统的数据库中提取就诊人员历史数据;所述就诊人员历史数据包括分类标签和生化检验的特征信息。

具体地,就诊人员样本的分类标签包括就诊人员存活和就诊人员死亡,或就诊人员健康和就诊人员不健康。

就诊人员样本的生化检验的特征信息包括血压、心率、血糖含量和血细胞含量。除了上述生化检验的特征信息之外,还包括其他现有特征信息,此处将不再举例说明。

下面以样本为美国克利夫兰市医院的心脏病就诊数据为例:

从医疗数据库获得297个就诊人员的历史数据,得到297个就诊人员样本,就诊人员的分类标签为心血管造影疾病严重状况,从0到4,“0”表示正常,“4”表示心血管的直径严重变小或严重堵塞,“1-3”表示心血管的直径严重变小不同程度或严重堵塞不同程度。

就诊人员样本的生化检验的特征信息包括:年龄,性别,胸部疼痛类别,静止血压,血清胆固醇含量,空腹血糖,心电图结果,最大心率,运动引起的心绞痛,相对于其余的运动诱发心电图st段压低值,心电图st段的斜率,大血管被透视着色数及地贫因素。

(2)数据分类优化服务器,其被配置为:

接收就诊人员历史医疗数据,构建样本数据矩阵,对样本数据矩阵进行降维处理得到的一维数列作为抽样框架,再结合一个均匀分布的低差异度数列,将提取的医疗数据样本数据矩阵均匀分成k个子集;

根据一个监督机器学习分类算法,构建一个分类学习模型,用k个子集中的数据进行交叉检验。其中用k-1个子集训练该模型,得到该模型的各项系数。然后用余下的一个子集做测试,得到预测分类准确率。依次循环k次,最后对这k个预测分类准确率求平均值;

判断该分类学习模型的k折平均预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则该分类学习模型符合要求;否则,提示研究人员修改该分类学习模型或使用另外一个监督机器学习分类算法构建新的模型。

进一步的,所述数据分类优化服务器,还被配置为:

将待分类的医疗数据输入至符合要求的分类学习模型中进行分类并输出分类结果。

进一步的,所述数据分类优化服务器,还被配置为:

利用降维方法分别对样本数据矩阵进行降维处理,得到相应一维数列;再分别对相应一维数列进行离差标准化,得到相应离差标准化一维数列;离差标准化一维数列中每个数据的取值均介于0-1之间,且小数点后保留预设位数;

利用圆周率π的正整数倍的小数部分构建一系列低差异数,并且使得该低差异数的小数点后保留数字位数与步骤2.1预设小数点后保留数字位数相等。比较小数点后保留预设位数的离差标准化一维数列和一个低差异度数列中数据的大小,将与所述低差异度数列中相等的数据逐个分配到预设的k个临时容器里。一直循环直到把一维数列的数值分配到k个临时容器里,每个临时容器为一个子集。

由于k个临时容器里每个一维数列上的数字对应样本数据矩阵中的一个样本(即矩阵的一行),可以从样本数据矩阵相对应的样本分配到相对应的k个子集中。每个子集中的样本数相等,且子集样本数的总和等于全集数据矩阵中所代表的样本数。

建立一个监督机器学习分类学习模型。使用上述k个子集的数据对该分类学习模型进行循环交叉验证,得到相应预测分类准确率并存储至一个临时结果集合内。对临时结果集合中的k个预测分类准确率求平均值,将该平均值存入预测准确率集合中。

最后判断医疗数据的分类学习模型的预测分类准确率是否大于或等于预设预测分类准确率阈值,若是,则医疗数据的分类学习模型符合要求,则可以部署该模型,将新的待分类的医疗数据至该模型进行分类并输出分类结果;否则,继续对分类学习模型进行修改或使用另外一种监督机器学习分类算法构建新的模型。

本发明的该系统利用超越数π(圆周率)的小数点后数字有无限不循环的特征来产生一个均匀分布的低差异度数列,来取代目前随机k-折交叉检验技术中使用的一个随机数列,然后利用降维方法来保留样本数据矩阵的最重要信息到一个一维数列作为抽样框架(samplingframe),利用这两个数列可以将全部样本数据均匀地分成若干个子集,实现子集之间的低差异度,进而能够得到当前训练完成的分类学习模型可靠的预测分类准确率,而且在无需改进具体机器学习算法的情况下,大大提高了预设分类学习模型的训练效率,减少了交叉检验计算时间,最终减少了医疗数据分类过程的时间,提高了医疗数据分类的效率。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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