基于SVM的DNA序列分类
发布时间:2018-06-25 来源: 短文摘抄 点击:
摘要:DNA序列存在局部和全局性的结构,按照结构进行DNA分类有重要意义.本文采用SVM方法对已知类别的人造DNA序列进行学习,进而对未知类别序列分类.SVM是一种有监督的分类器,可以分析已知数据,找到一个最大边缘超平面,进而对未知数据进行分类.本文中,我们利用MATLAB工具箱里的svmtrain函数实现SVM算法.
本文采用SVM算法实现对DNA的分类,首先要提取出DNA序列的特征,由于碱基含量和某些碱基片段在不同种类序列中的含量有很大差别,故先根据每种碱基的含量以及由A、T、C、G组成的7种3字符串在序列中出现的概率作为特征向量,将字符串通过比例矩阵表示成数学形式,实现了特征向量的提取.然后选用RBM核函数,通过k折交叉验证和网格法确定出平均交叉验证准确率最高的惩罚因子C和核函数参数g.同时,最高的平均交叉验证准确率为该模型的准确率.然后,将20组已知数据[9]作为训练数据,用svmtrain训练函数进行训练.为了进一步检验该分类法的准确度,我们采用反向检验法.将预测出的数据作为学习数据,重复交叉验证,模型训练过程,用得出的新模型检验前20组数据,结果表明该方法具有很好的分类精度.
关键字:DNA序列分类,SVM算法,特征向量,最大边缘超平面,支持向量
一、前言
DNA全序列像一本记载着人类所有生老病死和遗传进化信息的天书.这部天书是由A、T、C、G这四个碱基按一定顺序排成的长约30亿的序列.了解DNA全序列的结构,碱基的排列规律,对解读这部天书有重要意义.人们现已经发现了DNA序列中的一些规律性和结构,所以可以根据这些规律和结构去研究DNA序列.此外,用统计的方法还发现序列某些片段间有相关性.基于以上发现,我们有理由相信DNA序列有局部性和全局性的结构,那么研究序列结构对理解DNA全序列有很大作用.这项研究常用粗粒化和模型化的方法,即忽略某些细节,突出特征,然后用数学方式将其表示出来.
DNA序列中确实存在着一些规律性和结构,可以利用这些规律和结构来实现对DNA的分类.比如:DNA序列是由A、T、C、G四个字符按一定顺序排成的序列,这四个字符组成了64种不同的3字符串,其中大多数用来编码蛋白质的序列片段,而A、T含量特别多的,一般不用于编码蛋白质.于是利用以某些碱基含量特别丰富作为特征去研究DNA序列分类是合理的.通过A、T、C、G的含量进行分类是一种全局的DNA序列特征分析分类法,实际上由A、T、C、G可以组成很多种不同的DNA片段[9],有一些片段在A类中的含量特别多,在B类中出现次数很少,反之亦然.因此我们把这些特殊的DNA片段含量作为另一个分类依据进行分类这是从局部角度分析DNA序列特征.
DNA序列分类方法有很多.比如模糊聚类算法中的K-means算法,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则;基于SVM的分类算法,提取DNA序列特征向量,通过SVM算法对已知类别标签的DNA序列进行训练,通过交叉验证选定使得平均分类准确率最高的参数.利用选定的最佳参数对训练组进行训练,根据训练数组学习得到一个最大边缘超平面,利用这个最大边缘超平面对检验数组进行分类得分类超平面,利用这个最大边缘超平面对检验数组进行分类.
模糊聚类分析算法的不足之处在于它是一种非监督的学习方法.不能对已知分类标准的DNA序列组进行学习,进而对未知标准的序列做出判断.它是一种基于距離的分类方法,在处理大量数据时比较费时,另外它对数据初始化太敏感,容易陷入局部最优解.
与上述方法相比,SVM作为一种有监督的学习模型能够处理线性可分和非线性可分两种情况,基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最优化.在解决二分类问题中取得了特别好的效果.
二、模型的建立与求解
1.SVM算法基本理论
3.1 k折交叉验证
将样本数据分为k份,每次取k-1份为学习数据,剩余1份为测试数据,进行k次,使每份数据都有且只有一次做为测试数据,每次检验的准确率平均,得到平均交叉验证准确率.
3.2 应用
在svmtrain中使用’-v k’参数进行相应的k折交叉验证.它不再是返回一个结构体model,而是返回平均分类准确度.我们便可以进行算法设计中选取最优的c和g参数.
4. 优化参数
运用基于网格参数寻优方法,在用SVM进行分类选择RBF核函数时,需要选择合适的惩罚因子c和核函数参数g,找出这两个参数的可能区间,选定合适步长,遍历每对参数,进行交叉检验,找出平均交叉检验准确率最高的参数,作为模型参数.
其中惩罚因子c核函数参数g的选取采用网格法选取界限,以及步长.取c以0.2为步长,g以0.5为步长遍历所有的(c,g),进行5折交叉验证,得到平均交叉验证准确率每次输出结果赋值给中间量,比较得到最高准确率,它对应的参数即为最佳的c,g取值.
参考文献
[1] 数据挖掘:概念与技术(中文第三版),
[2] LIBSVM:一种支持向量机的程序库
[3] 数据挖掘十大算法,吴信东
[4] 华南师范2011——SVM参数交叉验证与网格搜索法优化选择
[5]中国工业与应用数学会2000年全国大学生数学建模竞赛A题
热点文章阅读