线性分类器
Large Margin Classification
根据样本边界(即支持向量),按照最大间隔进行划分的一种方法。最大间隔分类器对样本数目不敏感,对样本边界敏感,对样本scale敏感。
Soft Margin Classification
软间隔分类器相对硬间隔分类器(对边界有要求,边界不能交叉,即需要线性可分)而言,采取了更加灵活的策略:在最大化间隔同时,限制间隔侵犯(margin violations).
如果SVM出现overfitting,则可以适当调节参数C加大间隔侵犯容忍程度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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()
# petal length, petal width
X = iris["data"][:,(2,3)]
# iris-virginica
Y = (iris["target"] == 2).astype(np.float64)
svm_clf = Pipeline((
("scaler", StandardScaler()),
("linear_svc", LinearSVC(C=1, loss="hinge"))
))
# todo: scaled X
x = X
svm_clf.fit(x, Y)
> array([1.])
svm_clf.predict([[5.5,1.7]])
> array([1.])
非线性分类器
多项式核(Polynomial Kernel)
高斯径向基核(Gaussian RBF Kernel)
SVM回归
在线SVM
参考
- Hands-On Machine Learning with Scikit-Learn and TensorFlow