SVM 算法
支持向量機(jī)(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解決小樣本、非線性及高維模式識別中表現(xiàn)出許多特有的優(yōu)勢,并能夠推廣應(yīng)用到 函數(shù)擬合等其他機(jī)器學(xué)習(xí)問題中[10]。
支持向量機(jī)方法是建立在統(tǒng)計學(xué)習(xí)理論的VC 維理論和結(jié)構(gòu)風(fēng)險最小原理基礎(chǔ)上的,根據(jù)有限的樣本信息在模型的復(fù)雜性 (即對特定訓(xùn)練樣本的學(xué)習(xí)精度,Accuracy)和學(xué)習(xí)能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折衷,以期獲得最好的推廣能力[14](或稱 泛化能力)。
SVM 方法有很堅實的理論基礎(chǔ),SVM 訓(xùn)練的本質(zhì)是解決一個二次規(guī)劃問題(Quadruple Programming,指目標(biāo)函數(shù)為二次函數(shù),約束條件為線性約束的最優(yōu)化問題),得到的是全局最優(yōu)解,這使它有著其他統(tǒng)計學(xué)習(xí)技術(shù)難以比擬的優(yōu)越性。 SVM 分類器的文本分類效果很好,是最好的分類器之一。同時使用核 函數(shù)將原始的樣本空間向高維空間進(jìn)行變換,能夠解決原始樣本線性不可分的問題。其缺點是核函數(shù)的選擇缺乏指導(dǎo),難以針對具體問題選擇最佳的 核函數(shù);另外SVM 訓(xùn)練速度極大地受到訓(xùn)練集規(guī)模的影響,計算開銷比較大,針對SVM 的訓(xùn)練速度問題,研究者提出了很多改進(jìn)方法,包括Chunking 方法、Osuna 算法、SMO 算法和交互SVM 等等[14]。
SVM分類器的優(yōu)點在于通用性較好,且分類精度高、分類速度快、分類速度與訓(xùn)練樣本個數(shù)無關(guān),在查準(zhǔn)和查全率方面都優(yōu)于kNN及樸素貝葉斯方法[8]。
與其它算法相比,SVM算法的理論基礎(chǔ)較為復(fù)雜,但應(yīng)用前景很廣,我打算專門寫一個系列的文章,詳細(xì)的討論SVM算法,stay tuned!

介紹過了幾 個很具代表性的算法之后,不妨用國內(nèi)外的幾組實驗數(shù)據(jù)來比較一下他們的優(yōu)劣。
在中文語料上的試驗,文獻(xiàn)[6]使用了復(fù)旦大學(xué)自然語言處理實驗室提供的基準(zhǔn)語料對當(dāng)前的基于詞向量空間文本模型的幾種分類算法進(jìn)行了測試,這一基準(zhǔn)語料 分為20個類別,共有9804篇訓(xùn)練文檔,以及9833篇測試文檔。在經(jīng)過統(tǒng)一的分詞處理、噪聲詞消除等預(yù)處理之后,各個分類方法的性能指標(biāo)如下。

                      

其中F1 測度是一種綜合了查準(zhǔn)率與召回率的指標(biāo),只有當(dāng)兩個值均比較大的時候,對應(yīng)的F1測度才比較大,因此是比單一的查準(zhǔn)或召回率更加具有代表性的指標(biāo)。
由比較結(jié)果不難看出,SVM和kNN明顯優(yōu)于樸素貝葉斯方法(但他們也都優(yōu)于Rocchio方法,這種方法已經(jīng)很少再參加評測了)。
在英文語料上,路透社的Reuters-21578 “ModApt´e”是比較常用的測試集,在這個測試集上的測試由很多人做過,Sebastiani在文獻(xiàn)[23]中做了總結(jié),相關(guān)算法的結(jié)果摘錄如下:
   

 

分類算法

Reuters-21578 “ModApt´e”上的F1測度

Rocchio

0.776

樸素貝葉斯

0.795

kNN

0.823

SVM

0.864





















僅以F1測度來看,kNN是相當(dāng)接近SVM算法的,但F1只反映了分類效果(即分類分得準(zhǔn)不準(zhǔn)),而沒有考慮性能(即分類分得快不快)。綜合而論,SVM 是效果和性能均不錯的算法。

前面也提到 過,訓(xùn)練階段的最終產(chǎn)物就是分類器,分類階段僅僅是使用這些分類器對新來的文檔分類而已,沒有過多可說的東西。
下一章節(jié)是對到目前為止出現(xiàn)過的概念的列表及簡單的解釋,也會引入一些后面會用到的概念。再之后會談及分類問題本身的分類(繞口),中英文分類問題的相似 與不同之處以及幾種特征提取算法的概述和比較,路漫漫……