主要是处理过拟合现象,在使用支持向量机之前最好做一个标准化
可以使用超参数C控制软间隔程度,此处使用线性支持向量机进行软间隔作用的展示
import numpy as np
from matplotlib import pyplot as plt
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)] # petal length,petal width
y = (iris["target"] == 2).astype(np.float64) # Iris-Viginica
'''初步构建尝试'''
##Pipeline是将部分步骤集成 按顺序进行
svm_clf = Pipeline((
('std', StandardScaler()), ###标准化
('linear_svc', LinearSVC(C=1.0)), # 线性支持向量机
))
svm_clf.fit(X, y)
###预测检验是否构建完成
print(svm_clf.predict([[5.6, 2.4]]))
'''对比不同的C值所带来的差异'''
scaler = StandardScaler()
svm_clf1 = LinearSVC(C=1.0, random_state=42, dual=False)
svm_clf2 = LinearSVC(C=100