機器學習6SVM-支持向量機

將SVM分類器視爲在類別之間擬合可能的最寬的街道
在這裏插入圖片描述
在這裏插入圖片描述
二分類問題
在這裏插入圖片描述
其他分類算法:
在這裏插入圖片描述
在這裏插入圖片描述
軟間隔分類
Scikit_learn代碼 :
加載數據集,縮放特徵,訓練一個線性SVM模型

import numpy as np
from sklearn import datasets
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC

iris = datasets.load_iris()
X = iris["data"][:,(2,3)]
y = (iris["target"]==2).astype(np.float64)

svm_clf = Pineline((
                   ("scaler",StandardScaler()),
                   ("linear_svc",LinearSVC(c=1,loss="hinge")),
))
svm_clf.fit(x_scaled,y)

非線性SVM分類
處理非線性數據集的方法之一是添加更多特徵

用衛星數據集測試一下

from sklearn.datasets import make_moons
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
polynomial_svm_clf = Pipeline((
           ("poly_features",PolynomialFeatures(degree=3) )
           ("scaler",StandardScaler() )
           ("svm_clf",LinearSVC(c=10,loss="hinge"))
))
polynomial_svm_clf.fit(x,y)

多項式核
from sklearn.svm import SVC
poly_kernel_svm_clf = Pipeline((
(“scaler”,StandardScaler() )
(“svm_clf”,SVC(kernal=“poly”,degree=3,coefo=1,c=5))
))
這段代碼使用了一個3階多項式內核訓練SVM分類器。
模型過度擬合,應該降低多項式階數,擬合不足則提升

解決非線性問題的另一種技術是添加相似特徵。
相似函數可以測量每個實例與一個特定地標之間的相似度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章