技术领域
本发明涉及新型冠状病毒分类技术领域,尤其涉及一种基于极端梯度提升算法的新型冠状病毒分类方法。
背景技术
经研究发现,新型冠状病毒与现有的冠状病毒科之间存在一定的联系。对于一种新出现的病毒,我们要研究它与现有的病毒基因组之间最相关的关系,这就需要将病毒划分类别,从而判断该病毒是否由某些病毒重组产生的,或是作为一个新的感染人类的谱系独立产生的。然而大多技术存在分类精度低,运算速度慢,硬件需求高等缺点。
发明内容
本发明提出一种基于极端梯度提升算法的新型冠状病毒分类方法,其特征在于,包括如下步骤:
(1)获取三种现存病毒数据集和新型冠状病毒数据集;
(1a)从美国国家生物技术信息中心、全球共享流感数据倡议组织、Virus-Host DB三个平台获取所需的病毒数据,包括甲型冠状病毒属,乙型冠状病毒属,丁型冠状病毒属,COVID-19序列;
(1b)排除所有小于2000碱基对和大于50000碱基对的DNA序列,以解决序列长度偏差可能引起的问题;
(2)预处理三种病毒数据集和新型冠状病毒数据集,之后将三种病毒数据集作为训练集,新型冠状病毒数据集作为独立测试集;
(2a)将DNA序列映射成离散数字序列;
(2b)采用零填充方法将DNA序列对应的离散数字序列长度归一化到25000,其中长度小于25000的序列通过零填充扩展到25000,而长度大于25000的序列将其超过25000的部分删除;
(2c)将所述离散数字序列进行离散傅里叶变换(DFT变换),取模后得到幅度谱,该幅度谱也是DNA序列的幅度谱;
(2d)计算出所有序列的幅度谱后,将甲型冠状病毒属,乙型冠状病毒属,丁型冠状病毒属的所有序列的幅度谱整合到一个数据集中,该数据集作为训练集数据,COVID-19序列的幅度谱整合到一个数据集中,该数据集作为独立测试集数据;
(3)使用训练集训练并优化XGBoost模型,并获取最优模型;
(3a)将训练集数据划分为五份,其中一份作为验证集,其余四份作为训练集;
(3b)结合网格搜索方法和内部三折交叉验证对模型的参数进行调整,将训练集划分成三份,其中一份作为内部测试集,另外两份作为内部训练集,在不同的参数组合下使用内部训练集训练XGBoost模型,使用内部测试集对模型的分类性能进行评估,该步骤重复三次,得到三次评价指标中最高分数对应的参数,作为模型的最佳超参数;
(3c)在训练集上使用最佳超参数训练模型,使用训练好后的模型对验证集预测,得到模型对验证集的评估指标;
(3d)重复步骤3a至3c五次以实现五折交叉验证,将在五个验证集中得到的评价指标取平均值作为模型最终的分类性能指标;
(3e)选出五次训练出的模型中的最优模型,用以对独立测试集分类;
(4)使用最优模型结合模型的特征选择功能对测试集分类,得到模型评估指标和测试集的预测标签;
(4a)利用在训练集上训练好的最优模型进行特征重要性排序,得分高的前L个特征为选取的特征子集;
(4b)选取训练集上的特征子集训练模型,在相同的特征方案下对测试集进行评估,得到模型评估指标以及测试集的预测标签。
步骤(2a)所述的将DNA序列映射成离散数字序列,实现方法为:
从平台下载的数据是原始DNA序列数据,DNA序列由数千个连续的核苷酸组成:腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)和鸟嘌呤(G)。首先把组成DNA序列的四种碱基(A、C、T、G)映射成相应的数值序列,映射规则为:T=-1.5,C=0.5,A=1.5,G=-0.5。对于给定的s个DNA序列集合Q={Q
步骤(2c)所述的将所述离散数字序列进行离散傅里叶变换(DFT变换),取模后得到幅度谱,该幅度谱也是DNA序列的幅度谱,其实现步骤为:
假设所有输入的DNA序列中值长度为n,对于每个DNA序列Q
1≤i≤s,Q
R
对于0≤k≤n-1,f(Q
令Z
Z
幅度向量Z
步骤(4a)所述的利用在训练集上训练好的最优模型进行特征重要性排序,得分高的前L个特征为选取的特征子集,其实现为:
计算特征的平均信息增益的公式,按照每个特征平均信息增益的大小确定特征的重要性,平均信息增益越大,重要程度越高,平均信息增益可表示为:
其中N
本发明基于极端梯度提升方法,可以有效提高分类精度,解决新冠病毒分类准确率低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动力的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据预处理流程图;
图2为本发明网格搜索参数优化流程图;
图3为本发明特征选择流程图;
图4为本发明的整体流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图4为本发明的整体流程图,本发明提出一种基于极端梯度提升算法的新型冠状病毒分类方法,其特征在于,包括如下步骤:
(1)获取三种现存病毒数据集和新型冠状病毒数据集;
(1a)从美国国家生物技术信息中心、全球共享流感数据倡议组织、Virus-HostDB三个平台获取所需的病毒数据,包括甲型冠状病毒属(50个序列),乙型冠状病毒属(50个序列),丁型冠状病毒属(20个序列),COVID-19序列(29个序列);
(1b)排除所有小于2000碱基对和大于50000碱基对的DNA序列,以解决序列长度偏差可能引起的问题;
(2)预处理三种病毒数据集和新型冠状病毒数据集(预处理流程图见图1),之后将三种病毒数据集作为训练集,新型冠状病毒数据集作为独立测试集;
(2a)将DNA序列映射成离散数字序列;
(2b)采用零填充方法将DNA序列对应的离散数字序列长度归一化到25000,其中长度小于25000的序列通过零填充扩展到25000,而长度大于25000的序列将其超过25000的部分删除;
(2c)将所述离散数字序列进行离散傅里叶变换(DFT变换),取模后得到幅度谱,该幅度谱也是DNA序列的幅度谱;
(2d)计算出所有序列的幅度谱后,将甲型冠状病毒属,乙型冠状病毒属,丁型冠状病毒属的所有序列的幅度谱整合到一个数据集中,该数据集作为训练集数据,COVID-19序列的幅度谱整合到一个数据集中,该数据集作为独立测试集数据;
(3)使用训练集训练并优化XGBoost模型,并获取最优模型;
(3a)将训练集数据划分为五份,其中一份作为验证集,其余四份作为训练集;
(3b)结合网格搜索方法和内部三折交叉验证对模型的参数进行调整,将训练集划分成三份,其中一份作为内部测试集,另外两份作为内部训练集,在不同的参数组合下使用内部训练集训练XGBoost模型,使用内部测试集对模型的分类性能进行评估,该步骤重复三次,得到三次评价指标中最高分数对应的参数,作为模型的最佳超参数;
(3c)在训练集上使用最佳超参数训练模型,使用训练好后的模型对验证集预测,得到模型对验证集的评估指标;
(3d)重复步骤3a至3c五次以实现五折交叉验证,将在五个验证集中得到的评价指标取平均值作为模型最终的分类性能指标;
(3e)选出五次训练出的模型中的最优模型,用以对独立测试集分类;
(4)使用最优模型结合模型的特征选择功能对测试集分类,得到模型评估指标和测试集的预测标签;
(4a)利用在训练集上训练好的最优模型进行特征重要性排序,得分高的前L个特征为选取的特征子集;
(4b)选取训练集上的特征子集训练模型,在相同的特征方案下对测试集进行评估,得到模型评估指标以及测试集的预测标签。
步骤(2a)所述的将DNA序列映射成离散数字序列,实现方法为:
从平台下载的数据是原始DNA序列数据,DNA序列由数千个连续的核苷酸组成:腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)和鸟嘌呤(G)。首先把组成DNA序列的四种碱基(A、C、T、G)映射成相应的数值序列,映射规则为:T=-1.5,C=0.5,A=1.5,G=-0.5。对于给定的s个DNA序列集合Q={Q
步骤(2c)所述的将所述离散数字序列进行离散傅里叶变换(DFT变换),取模后得到幅度谱,该幅度谱也是DNA序列的幅度谱,其实现步骤为:
假设所有输入的DNA序列中值长度为n,对于每个DNA序列Q
R
对于0≤k≤n-1,f(Q
令Z
Z
幅度向量Z
预处理方案将DNA序列的频域信号作为模型的输入数据的好处在于频域信号会比数字信号反映出更多的信息,而且使用该预处理方案在模型的分类精度提升上有一定的帮助。
步骤(3b)所述使用网格搜索方法得到最佳超参数,其实现为:网格搜索法结合内部三折交叉验证来优化模型的参数。网格搜索法通过循环遍历,搜索所有的参数组合,然后将各组合用于模型训练,并使用交叉验证对性能进行评估。在拟合函数尝试了所有的参数组合后,模型性能表现最好的参数组合就是最终确定的超参数。网格搜索法的优点是能够同时对多个参数并行化处理,进行高效的参数调优。本实验主要用到下列参数,这里给出网格搜索参数及大致范围。关于参数优化的流程图如图2所示.
max_depth(树的最大深度),范围为[3,8),步长为1
learning_rate(学习率),范围为[0.005,0.01,0.05,0.07,0.1,0.13,0.17]
colsample_bytree(在建立树时对特征采样的比例),范围为[0.3,0.9),步长设为0.1。
subsample(训练模型的子样本占整个样本集合的比例),范围为[0.3,0.9),步长设为0.1。
gamma(节点分裂所需的最小损失函数下降值),范围为[0,1.6),步长设为0.1。
reg_alpha(权重的L1正则化项),范围为[0,1.6),步长设为0.1。
reg_lambda(权重的L2正则化项),范围为[1,1.6),步长设为0.1。
步骤3(c)所述的使用XGBoost模型进行训练,其实现为:首先需要构建XGBoost模型,然后使用预处理得到的训练集来训练模型。假设给定的数据集有n个样本,D={(x
其中K为树的个数,f(x
(5)式第一部分为预测值与真实值之间的损失函数,第二部分为正则化项,其中γ,λ为用于控制正则化程度的系数,T表示一棵树的叶子节点个数,||w||
则目标函数可以表示为:
对目标函数进行泰勒公式二级展开,其中
式中
其中I
其中G
等式(13)用于在分割期间对叶节点进行评分。方程的第一项、第二项和第三项分别代表左、右和原叶上的得分。通过上述计算就可以确定每一步的生成回归树的结构和取值,从而确定整个模型结构。
步骤(4a)所述的利用在训练集上训练好的最优模型进行特征重要性排序,得分高的前L个特征为选取的特征子集,其实现为:
计算特征的平均信息增益的公式,按照每个特征平均信息增益的大小确定特征的重要性,平均信息增益越大,重要程度越高,平均信息增益可表示为:
其中N
具体来说,发明流程可概括为:
(1)从平台下载所需的病毒数据:甲型冠状病毒属(50个序列),乙型冠状病毒属(50个序列),丁型冠状病毒属(20个序列),COVID-19序列(29个序列)。
(2)采用数字映射规则将所有DNA序列转化为离散数字信号序列,采用零填充方法将离散数字序列长度归一化到25000后,对离散数字信号作DFT,得到幅度谱,将甲型冠状病毒属,乙型冠状病毒属,丁型冠状病毒属对应的幅值序列整合到一个数据集中,该数据集为本实验的训练集,同理将COVID-19序列对应的幅值序列整合到另一个数据集中,此数据集作为独立测试集。这是一个多分类任务,将甲型冠状病毒属,乙型冠状病毒属,丁型冠状病毒属分别标记为0,1,2,标签为{0,1,2}。
(3)训练集矩阵每一行代表一个样本,将样本分成近似相等的五份,其中一份作为验证集,剩余四份作为训练集。
(4)使用网格搜索法结合内部三折交叉验证对模型的参数进行调整。将训练集分成三份,其中一份作为内部测试集,剩余两份作为内部训练集,使用内部训练集以及不同参数组合训练XGBoost模型,并使用内部测试集对模型的分类性能进行评估,该步骤重复三次,输出三次评价指标中最高分数对应的参数,作为模型的最佳参数。
(5)在训练集上使用最佳超参数训练模型,使用训练好后的模型对验证集预测,得到模型对验证集的评估指标。
(6)重复步骤(3)至(5)五次以实现五折交叉验证,最后将在五个验证集中得到评价指标取平均值作为模型最终的分类性能指标。
(7)选出五次训练出的模型中的最优模型,用以对独立测试集分类。
(8)使用最优模型结合模型的特征选择功能对测试集分类,得到模型评估指标和测试集的预测标签。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
机译: 数据挖掘中基于单侧极端分裂准则的数据统计分类方法
机译: 基于极端重力梯度的潜艇位置检测方法
机译: 一种基于用户兴趣的信息分类方法和装置以及一种基于用户兴趣的存储信息记录程序