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