李婷婷

摘要: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題