張正陽, 須文波, 丁彥蕊
(江南大學信息工程學院,江蘇無錫 214122)
SVM的參數(shù)優(yōu)化及在耐熱酶和常溫酶分類中的應用
張正陽, 須文波*, 丁彥蕊
(江南大學信息工程學院,江蘇無錫 214122)
氨基酸的組成是影響蛋白質耐熱性的主要因素之一,所以以20種氨基酸所占比例作為特征向量,利用支持向量機(Support vector machine,SVM)預測蛋白質的耐熱性。在比較了幾何方法、SVM-KNN和重復訓練3種參數(shù)優(yōu)化的方法之后,從中選擇了幾何方法來優(yōu)化SVM分類器的參數(shù),并使預測率從85.4%提高到88.2%。從預測率上可知:(1)幾何方法優(yōu)化SVM參數(shù)可以有效地提高預測率;(2)氨基酸含量與酶的耐熱性之間存在極強的相關性。
支持向量機;氨基酸含量;分類;參數(shù)優(yōu)化
耐熱酶之所以較常溫酶受到更多的關注,是因為它在高溫下比常溫酶有更多的功能,而且具有反應速度快、不易被雜菌污染等特點,不過它的難以培養(yǎng)、不易獲得恐怕是引起更多人興趣的原因。目前,它主要通過篩選耐熱微生物獲得,不過產酶量很低。盡管如此,耐熱酶仍然在食品釀造、醫(yī)藥、環(huán)境保護和金屬冶煉等領域得到了廣泛的應用。所以本文的出發(fā)點就是想通過蛋白質序列信息來研究耐熱酶耐熱的分子機制,了解蛋白質的折疊過程[1],尋求通過蛋白質工程手段提高常溫酶耐熱性的途徑。
耐熱酶和常溫酶都是由20種相同的氨基酸組成,卻在高溫下表現(xiàn)出截然不同的性質,這的確使人難以理解。而在以往的研究中,人們更多的是從分子生物學、結構生物學的角度,去分析二級結構和三級結構等不同結構層次,來了解某個或某些酶的耐熱性。至于研究發(fā)現(xiàn)的影響耐熱的因素也很多,比如氨基酸組成、二肽含量、氫鍵、鹽橋等。
利用機器學習的方法來研究蛋白質的耐熱性近來也受到重視,比如Cheng等人利用序列和結構的信息來預測單個氨基酸突變對耐熱性的影響,而他們選擇了SVM來進行預測的工作并得到了84%的準確率[2]。而Zhang等人利用新型分類器LogitBoost通過蛋白質主要結構來區(qū)分喜溫和嗜熱的蛋白質,同樣也得到了相當好的效果[3]。
本次仿真選用的SVM是由Vapnik和他的合作者一同提出的學習算法[4]。其特點是它不但可以學習復雜的非線性的輸入數(shù)據(jù),而且還具有足夠的健壯性可以避免陷入局部最優(yōu)的尷尬境地。而這些是發(fā)現(xiàn)影響蛋白質耐熱性因素所必須具備的條件[2]。它的主要原理是利用核函數(shù)把原始數(shù)據(jù)映射到高維空間,這樣可以使得數(shù)據(jù)有可能變成線性可分的(圖1)。其主要特點是不顯式地將原始數(shù)據(jù)映射到高維空間,而是利用核函數(shù)K(x,z)=(x)·?(z)>去隱式計算點乘,從而減少計算的復雜性,這里x,z是原始數(shù)據(jù),φ是從輸入空間到高維空間的映射[5]。而最終的決策邊界即判斷每個樣本屬于哪一類是用
來判斷的,其中的K只是起到度量樣本x和xi的相似程度的作用,而αi則是在解決QP問題后得到的拉格朗日乘子,而那些支持向量(SVs)對應著不為0的αi[2,5,6]。
目前SVM在解決高維模式識別問題中表現(xiàn)出許多特有的優(yōu)勢,同時它也被廣泛用于其他機器學習的問題中比如文本分類、圖像識別、手寫數(shù)字識別和生物信息學等[5]。但是在SVM的應用中還存在著一些問題:(1)核函數(shù)的選擇和參數(shù)的優(yōu)化。(2)雖然開發(fā)了較多算法[6]去解決訓練數(shù)據(jù)過多時,訓練時間較長的問題,但是仍有提高的空間。(3)復雜問題分類依舊不是很準確。
本文主要解決的是針對具體問題的SVM參數(shù)的優(yōu)化。這樣做最直觀的效果是提高了SVM對具
圖1 SVM原理Fig.1 SVM principle
體問題的預測率,增加了它的適應性,更重要的是為我們增進對具體問題的認識提供了另一條有效的途徑,同時也拓寬了SVM的應用領域。至于目前針對SVM參數(shù)優(yōu)化的方法主要有3種:(1)根據(jù)具體問題選用、構造或調整核函數(shù)。(2)SVM和其他分類方法相結合。(3)采用新的算法解決QP問題。
接下來,本文將主要介紹SVM訓練集的構建,以及3種參數(shù)優(yōu)化的方法。之后,比較和分析預測結果,找出最適合分類耐熱酶和常溫酶的參數(shù)優(yōu)化方法。
2.1 數(shù)據(jù)集的構建
首先,先從DSMZ[7]數(shù)據(jù)庫中挑選生長溫度大于60℃的微生物,并從Swiss-Prot數(shù)據(jù)庫中下載這些微生物的蛋白質序列,同時下載與耐熱蛋白質數(shù)量相當?shù)某氐鞍踪|序列,然后去除含有假定、可能、假設等詞的蛋白質序列。由于本次仿真是把氨基酸含量當作SVM的特征向量,所以前期還要處理數(shù)據(jù),得到20個氨基酸在每個樣本里的含量,以此完成數(shù)據(jù)集的構建。
2.2 參數(shù)優(yōu)化的方法介紹
2.2.1 幾何方法 該方法的第一步與通常的SVM訓練一樣,首先用合適的核函數(shù)訓練以找出分類面的大體位置,而后放大邊界周圍的黎曼度量,這主要是通過對核函數(shù)的縮放來完成。在這個過程中核心就是對核函數(shù)的縮放,其中對之前算法的改進就是使用對邊界的直接度量來擴大核函數(shù),而不是先前使用支持向量的方法。具體方法是在第一次訓練結束之后,先后使用公式:
得到f(x),D(x)的值,而后通過下列公式得到調整后的核函數(shù):k(x,x′D(x)K(x,x′)D(x′),然后重復上述過程直至得到最好的預測結果[8,9,10]。
2.2.2 SVM-KNN 由于SVM是可以等同于每類只有一個支持向量為代表點的最近鄰分類器(Near Neighbor)的,所以這使得在同一分類問題里使用不同分類器成為可能[11]。而第二種方法就是通過控制分類閾值ε的大小來達到分類的目的。當樣本到分類面的距離大于給定的閾值,說明樣本離分類面較遠,用SVM分類會達到比較好的效果。反之,當距離小于給定的閾值時,用KNN去分類,去計算樣本和每個支持向量作為代表點的距離來判斷樣本所屬類別。當然在用KNN分類時,因為計算距離是在特征空間里進行的,所以距離公式要采用如下形式:至于ε的取值一般在0到1之間[11,12]。
2.2.3 重復訓練 該算法的靈感來源于自然界的再學習,即不斷地從錯誤中學習。其出發(fā)點就是處理預測結束后測試集中被誤分的樣例,恰巧這部分通常都是被人遺忘的。而它的核心思想就是將誤分的樣例加入到原訓練集中,以增加支持向量的數(shù)量,形成新的分類面,從而提高SVM的預測率。其主要步驟就是先用準備好的訓練集測試集訓練和預測。而后在得到的結果里,對照測試集挑出被誤分的樣例并把它們加入到原訓練集里。最后,在使用新訓練集和原測試集的情況下,得到新的預測率。當然,如果分類效果不好,可以重復上述步驟,
直到得到滿意的結果[13]。不過需要注意的是新測試集和原測試集必須是采用同樣的方法從相同的數(shù)據(jù)源得到。
在使用陸振波的MATLAB下SVM[14]訓練和測試數(shù)據(jù)時,使用了多個核函數(shù)以觀察其實際效果,比如線性、多項式、sigmoid和RBF。最終發(fā)現(xiàn)RBF(exp-γ‖xi-xj‖2,γ>0)具有較好的性能。不過無論是SVM本身還是核函數(shù)RBF都需要調整參數(shù)以得到較好的泛化性能和盡量避免過擬合現(xiàn)象的出現(xiàn)。顯而易見,此過程中需要調整的參數(shù)是RBF中的γ和SVM中C。γ是控制高斯函數(shù)最大值的,一旦它增大就會導致一連串的變化,不光提高了高斯函數(shù)最大值的上限,也會使得決策邊界更加復雜更加不平滑。而C則是αi所能取到的最大值,同時它也控制著訓練錯誤和f(x)平滑度兩者之間的平衡。這樣導致的后果就是C越大就越會得到高擬合度即低錯誤率高復雜度的f(x)(決策邊界),當然這必須付出過擬合數(shù)據(jù)的代價[2],而這些都不是我們所希望的,因為我們不想得到只對某一個或幾個數(shù)據(jù)集能有效分類的分類器。所以在仿真開始階段,主要工作放在替SVM找出合適的參數(shù)γ和C來,而結果是當γ=1,C=200時,分類的效果最好為85.4%。而后在Matlab下實現(xiàn)上述三種方法,并使用之前找到的較好參數(shù)去預測以期得到良好的分類效果。
第一種方法中需要預設的參數(shù)是Κ,仿真時參考了[8]所建議的參數(shù),具體情況見表1。從表中可以明顯發(fā)現(xiàn)經過該方法優(yōu)化過的SVM較原始版本預測率上有了提高,至少能維持在原始水平。其中提升最大的是當Κ=0.90×10-3,D=1.92×10-3時,準確率為88.2%比原先的85.4%提高了2.8%。而在多數(shù)分組中達到最大準確率的都是各分組的第一組參數(shù),而函數(shù)D的值總是在該組中的比較小和比較大的值之間來回地變動,相對應的是每當D在較大值時,準確率至少維持在未優(yōu)化前的水平即85.4%,而當D在較小值時,準確率一般能達到較高的水平,有的甚至達到了該組的最大值。
表1 幾何方法Tab.1 G eometric method
表2 SVM-KNNTab.2 SVM-KNN
表3 重復訓練Tab.3 Repetition training
表4 3種方法的比較Tab.4 The comparison of the three methods
第2種方法中需要預設的參數(shù)是分類閾值ε,仿真時參考了[11][12]所建議的參數(shù),具體情況見表2。從表中可以看出在ε<0.8之后所有的預測率都跟原始的一樣。這說明了KNN發(fā)揮作用也只是限于ε在0.8-1之間,所提升的空間為0.7%,這點可以讓我們知道在特征空間里此仿真樣例到分類面的最小距離都比0.7要大,所以才會導致一旦ε<0.8時,該分類算法采用SVM來分類,而不是KNN,繼而得出的預測結果與使用原始方法得到的結果一致。
第3種方法需要說明的是在對照測試集后,本仿真共得到50個錯分的樣例,在加入到原訓練集之后與原測試集一起完成仿真,仿真結果見表3。從表中可以看出,相對于原SVM,新SVM在支持向量個數(shù)上增加了57個,占原支持向量個數(shù)的51.4%,而預測率提高了0.7%。這一切都符合了該算法的思想,即在新訓練集是由原訓練集和錯分樣例構成的情況下,重新訓練SVM以獲得更多的支持向量并形成新的分類面,從而達到提高預測率的目的。
而針對這3種方法的比較見表4,從表中可以明顯地看出,幾何方法的最低準確率只有61.1%,但是考慮到該方法是反復調整參數(shù),因此總能取到最大的準確率,而且在表1中該方法大多數(shù)的準確率都維持在85.4%左右,所以不必擔心其分類能力。而在最高準確率分組中,幾何方法以88.2%的準確率位居榜首。而其他兩種方法無論是在最高或最低準確率上都保持一致。
本文使用了3種參數(shù)優(yōu)化的方法來提高SVM在分類耐熱酶和常溫酶過程中的預測率并且都取得了比較好的分類效果,進一步的證實了利用序列信息是可以有效分類蛋白質的。這3種參數(shù)優(yōu)化的方法是從不同的角度出發(fā)來提高SVM的預測率,不過從預測率高低的角度看,第1種方法是3種方法中最好的,其預測率達到了88.2%,較原始預測率提高了2.8%。這說明了相對于其它方法,第一種參數(shù)優(yōu)化的方法更適合在SVM處理氨基酸含量時使用。
而下一步的工作可能會著重放在提高數(shù)據(jù)集的質量和進一步改進算法提高SVM的預測率上,尤其是加入新的算法去更有效地解決QP問題。
[1]Hoppe C,Schomburg D.Prediction of protein thermostability with a direction-and distance-dependent knowledge-based potential[J].Protein Science,2005,14:2682-2692.
[2]Cheng J L,Randall A,Baldi P.Prediction of Protein Stability Changes for Single-Site Mutations Using Support Vector Machines[J].PROTEINS:Structure,Function,and Bioinformatics,2006,62:1125-1132.
[3]Zhang G Y,Fang B S.LogitBoost classifier for discriminating thermophilic and mesophilic proteins[J].Journal of Biotechnology,2007,127:417-424.
[4]Vapnik V.The Nature of Statistical Learning Theory[M].New York:Springer-Verlag,1995.
[5]Cristianini N,Shawe-Taylor J.支持向量機導論[M].李國正,王猛,曾華軍譯,北京:電子工業(yè)出版社,2004:24-29,82 -97.
[6]Paquet U,Engelbrecht A P.Training support vector machines with particle swarms[C].IEEE World Congress ComputerIntelligence,2003:1593-1598.
[7]Peter Villiams,Sheng Li,Jiang feng,et al.Ageometrical method to improve performance of the support vector machine [C].IEEE Tramsac on neural networks,[London]:[s.n]2006:1-5.
[8]Wu S,Amari S-I.Conformal transformation of kernel functions:a data-dependent way to improve support vector machine classifiers[J].Neural Processing Letters,2002,15:59-67.
[9]Amari S,Wu S.Improving support vector machine classifiers by modifying kernel functions[J].Neural Network,1999, 12:783-789.
[10]李蓉,葉世偉,史忠植.SVM-KNN分類器——一種提高SVM分類精度的新方法[J].電子學報,2002,30(5):754-748.
LI Rong,YE Shi-wei,SHI Zhong-zhi.SVM-KNN classifier-s new method of improving the sccuracy of SVM classifier [J].ACTA ELECTRONICA SINICA,2002,30(5):754-748.
[11]LI R,WANG H N,HE H,et al.Support vector machine combined with K-nearest neighbors for solar flare forecasting [J].Chin.J.Astron.AstroPhys,2007,7(3):41-44.
[12]董春曦,饒鮮,楊紹全.基于重復訓練提高SVM識別率的算法[J].系統(tǒng)工程與電子技術,2003,25(10):1292-1294.
DONG Chun-xi,RAO Xian,YANG Shao-quan.An algorithm to improve the recognizing rate based on retraining samples [J].Systems Engineering and Electronics,2003,25(10):1292-1294.
[13]陸振波.支持向量機Matlab工具箱1.0[EB/OL].www.dsmz.de/microorganisms/archaea_catalogue.php
(責任編輯:楊萌)
Parameters Optimization of Support Vector Machine for Discriminating Thermophilic and Mesophilic Enzyme
ZHANG Zheng-yang, XU Wen-bo*, DING Yan-rui
(School of Information Technology,Jiangnan University,Wuxi 214122,China)
It was widely accepted that amino acid composition play vital role on the protein thermostability.In this manuscript,20-amino acid composition in their protein sequence was chosen as the feature vector of SVM and used to predict the protein thermostability by SVM.the accuracy increased from 85.4%to 88.2%by using the geometrical method to optimize SVM parameter.Furthermore,it could be acquired following conclusions:(1)geometrical method is an efficient method to improve the accuracy of SVM parameters;.(2)there is a very close relationship between percentage of amino acid and enzyme thermostability.
SVM,percentage of amino acid,discrimination,parameters optimization
TP 183
:A
1673-1689(2010)02-0312-05
2009-04-11
江南大學創(chuàng)新團隊基金項目(JNIRT0702);江南大學自然科學預研基金項目。
*通信作者:須文波(1946-),男,教授,博士生導師,主要從事人工智能、計算機控制技術、嵌入式操作系統(tǒng)。Email:zzylivehhit@sohu.com