更新時(shí)間:2022-09-07 來(lái)源:黑馬程序員 瀏覽量:
SVM全稱(chēng)是supported vector machine(支持向量機(jī)),即尋找到一個(gè)超平面使樣本分成兩類(lèi),并且間隔最大。
SVM能夠執(zhí)行線性或?線性分類(lèi)、回歸,甚至是異常值檢測(cè)任務(wù)。它是機(jī)器學(xué)習(xí)領(lǐng)域最受歡迎的模型之一。SVM特別適用于中小型復(fù)雜數(shù)據(jù)集的分類(lèi)。
上左圖顯示了三種可能的線性分類(lèi)器的決策邊界:虛線所代表的模型表現(xiàn)非常糟糕,甚至都無(wú)法正確實(shí)現(xiàn)分類(lèi)。其余兩個(gè)模型在這個(gè)訓(xùn)練集上表現(xiàn)堪稱(chēng)完美,但是它們的決策邊界與實(shí)例過(guò)于接近,導(dǎo)致在面對(duì)新實(shí)例時(shí),表現(xiàn)可能不會(huì)太好。
右圖中的實(shí)線代表SVM分類(lèi)器的決策邊界,不僅分離了兩個(gè)類(lèi)別,且盡可能遠(yuǎn)離最近的訓(xùn)練實(shí)例。
在上面我們使用超平面進(jìn)行分割數(shù)據(jù)的過(guò)程中,如果我們嚴(yán)格地讓所有實(shí)例都不在最大=大間隔之間,并且位于正確的一邊,這就是硬間隔分類(lèi)。
硬間隔分類(lèi)有兩個(gè)問(wèn)題,首先,它只在數(shù)據(jù)是線性可分離的時(shí)候才有效;其次,它對(duì)異常值非常敏感。
當(dāng)有一個(gè)額外異常值的鳶尾花數(shù)據(jù):左圖的數(shù)據(jù)根本找不出硬間隔,而右圖最終顯示的決策邊界與我們之前所看到的無(wú)異常值時(shí)的決策邊界也大不相同,可能無(wú)法很好地泛化。
要避免這些問(wèn)題,最好使用更靈活的模型。目標(biāo)是盡可能在保持最大間隔寬闊和限制間隔違例(即位于最大間隔之上,甚至在錯(cuò)誤的一邊的實(shí)例)之間找到良好的平衡,這就是軟間隔分類(lèi)。
要避免這些問(wèn)題,最好使用更靈活的模型。目標(biāo)是盡可能在保持間隔寬闊和限制間隔違例之間找到良好的平衡,這就是軟間隔分類(lèi)。
在Scikit-Learn的SVM類(lèi)中,可以通過(guò)超參數(shù)C來(lái)控制這個(gè)平衡:C值越小,則間隔越寬,但是間隔違例也會(huì)越多。上圖 顯示了在一個(gè)非線性可分離數(shù)據(jù)集上,兩個(gè)軟間隔SVM分類(lèi)器各自的決策邊界和間隔。
左邊使用了高C值,分類(lèi)器的錯(cuò)誤樣本(間隔違例)較少,但是間隔也較小。
右邊使用了低C值,間隔大了很多,但是位于間隔上的實(shí)例也更多??雌饋?lái)第二個(gè)分類(lèi)器的泛化效果更好,因?yàn)榇蠖鄶?shù)間隔違例實(shí)際上都位于決策邊界正確的一邊,所以即便是在該訓(xùn)練集上,它做出的錯(cuò)誤預(yù)測(cè)也會(huì)更少。