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