ipynb文件见:https://github.com/824024445/Machine-learning-notes/blob/master/5支持向量机.ipynb
《Sklearn与TensorFlow机器学习实用指南》学习笔记
也叫最大间隔分类
一、线性支持向量机分类
以鸢尾花数据为例
硬间隔,软间隔:
软间隔就是允许一部分数据在边界内
参数解释:
C:值越小间隔越“软”
loss:计算软间隔用的损失函数的类型
与逻辑回归分类器比较:
- 逻辑回归分类器是判断属于每个类别的概率,选择最大的那个
- 损失函数的判别项不一样。逻辑回归分类器每个项都有损失。而支持向量机有一个阈值,小于这个阈值则损失为0.
> 注:SVM为:Support Vector Machines支持向量机。 而SVC是Support Vector Classification支持向量分类
import numpy as np
from sklearn import datasets
from sklearn.preprocessing import StandardScaler # 特征缩放。特征缩放后的边界会更好
from sklearn.svm import LinearSVC
from sklearn.pipeline import Pipeline
iris = datasets.load_iris()
X = iris["data"][:, (2,3)] # 只选取长度和宽度两列
y = (iris["target"]==2).astype(np.int) # 只判断目标是否为Virginica这种花
svm_clf = Pipeline([
("scaler",StandardScaler()),
("linear_svc", LinearSVC(C=1, los