支持向量機
描述
用於處理二分類問題, 對於二維線性可分的問題, 尋找決策邊界(分割線), 使得支撐向量到決策邊界的距離儘可能的大. 對於線性不可分的問題, 則首先將樣本特徵映射到更高維度, 再尋找一個超平面,使得支撐向量到超平面的距離儘可能的小. 通過核函數得展開達到這一目的. 常用的核函數有線性核, 多項式核, 高斯核.
引入正則化項(一定的容錯空間). 求解的是條件(wx+b>1-eta)最優解. 解決二分類問題.,使決策邊界的margin內的點儘可能少, 解決迴歸問題使margin內的點儘可能多, 正則化項係數大容錯邊界窄(L1),支持向量距離超平面近, 正則化項係數大容錯邊界寬,會有分錯的點.
具備多項式特徵(非線性)的決策邊界(使用kernel參數引入多項式特徵):kernel=“linear”/ “rbf”/ “poly”
適用於特徵之間相關性不大的場景
接口
from sklearn.svm import LinearSVC # 分類
from sklearn.svm import LinearSVR # 迴歸
from sklearn.svm import SVC # 分類(可以傳入核函數)
from sklearn.svm import SVR # 迴歸(可以傳入核函數)
from sklearn.pipeline import Pipeline
clf = SVC(probability=True,cache_size=5000,max_iter=10000)
clf.fit()