過擬合(Overfitting)表現(xiàn)為在訓(xùn)練數(shù)據(jù)上模型的預(yù)測(cè)很準(zhǔn)阱高,在未知數(shù)據(jù)上預(yù)測(cè)很差。過擬合主要是因?yàn)橛?xùn)練數(shù)據(jù)中的異常點(diǎn),這些點(diǎn)嚴(yán)重偏離正常位置。我們知道宠哄,決定SVM最優(yōu)分類超平面的恰恰是那些占少數(shù)的支持向量巧骚,如果支持向量中碰巧存在異常點(diǎn)脊框,那么我們傻傻地讓SVM去擬合這樣的數(shù)據(jù)润樱,最后的超平面就不是最優(yōu)的。
如圖1所示爸舒,深紅色線表示我們希望訓(xùn)練得到的最優(yōu)分類超平面蟋字,黑色虛線表示由于過擬合得到的較差的分類面。這是由于藍(lán)色數(shù)據(jù)中有一個(gè)異常點(diǎn)扭勉,即圖中的那個(gè)黑圈藍(lán)點(diǎn)鹊奖,使得我們的SVM去將就配合它,導(dǎo)致最后得到的分類面(粗黑色虛線)不盡如人意涂炎。從間隔可以看出忠聚,黑色虛線兩邊的間隔要比紅色線兩邊的間隔要狹窄,也就是黑色虛線的分類效果比較差唱捣。
解決過擬合的辦法是為SVM引入了松弛變量ξ(slack variable)两蟀,將SVM公式的約束條件改為:
從圖2可以看到,引入松弛變量使SVM能夠容忍異常點(diǎn)的存在震缭。為什么赂毯?因?yàn)橐胨沙谧兞亢螅悬c(diǎn)到超平面的距離約束不需要大于等于1了,而是大于0.8就行了(如果ξ=0.2的話)党涕,那么異常點(diǎn)就可以不是支持向量了烦感,它就作為一個(gè)普通的點(diǎn)存在,我們的支持向量和超平面都不會(huì)受到它的影響膛堤。
我們知道手趣,事物都有兩面性,對(duì)異常點(diǎn)太容忍會(huì)導(dǎo)致任意超平面都可以是“最優(yōu)”超平面骑祟,SVM就失去意義了。因此SVM公示中的目標(biāo)函數(shù)也需要相應(yīng)修改气笙,我們加上松弛變量的平方和次企,并求最小值潜圃。這樣就達(dá)到一個(gè)平衡:既希望松弛變量存在以解決異常點(diǎn)問題,又不希望松弛變量太大導(dǎo)致分類解決太差谭期。