论文部分内容阅读
随着人类基因组计划的顺利完成和各种后基因组计划的开始实施,出现了海量的生物分子数据,这使得科学家们需要分析大量DNA数据。如何充分利用这些数据,进而揭示这些数据的内涵,得到对人类有用的生物信息,是科学家们面临的一个严峻的挑战。DNA序列的处理方法一般是先寻找一种数学模型用以表示DNA,再借助其它工具对其进行分析。支持向量机(SVM)是在统计学习理论基础上发展起来的新算法,该算法是一种模式识别技术,相当于一种模式分类器。其训练算法本质上是一个凸二次规划的求解问题。它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并在文本分类、生物信息、语音识别、遥感图像分析、故障识别和预测、时间序列预测、信息安全等诸多领域有了成功的应用[2-41。本文采用SVM算法对DNA序列进行分类。为了提供算法所需要的输入数据格式,首先要将DNA序列用数学模型表示出来。SVM对输入数据的格式要求是表示成特征向量的形式。因此本文从DNA序列中单个碱基的含量和DNA序列的长度出发,结合滑动窗口方法计算出DNA序列中特征序列的出现频率,提取出DNA序列的特征,将DNA序列表示成特征向量的形式,然后根据SVM算法对已知类别标签的DNA序列训练样本做训练得到分类超平面,利用此超平面分类DNA序列的测试样本。分类结果表明这种提取特征的方法具有很好的分类精度。本文对SVM算法采用Matlab实现。典型二分类中的数据采用文献[9]中的数据。首先对已知类别的1-20个人工DNA序列进行SVM算法训练,利用参数寻优得到分类器。根据分类结果的精度反馈,进一步选择是否对数据归一化和降维等操作对结果进行优化,得到最佳的分类超平面。然后对另外的20个人工DNA序列和182个自然DNA序列进行分类预测。典型的SVM算法是一个二分类问题,DNA序列的多类分类实现是利用SVM的多类分类理论和算法,数据采用的是UCI数据库中的DNA序列数据,该序列集合中的数据分成了训练集和测试集,并且两个集合中的记录均有类别标签,便于分类测试。对于SVM多类算法的实现,同样用Matlab编程实现了DNA序列的多类分类。两部分的分类结果表明,SVM算法具有分类简单且分类结果精度较高的优点,同时结果也说明了本文对DNA序列所提取的特征向量是非常有效的,可以应用到实际的DNA序列分类预测中。