SVM可以用于分类、回归、异常检测。SVM库中包括SVC、LinearSVC接口
1.导入svm库
from sklearn import svm
2.制作训练集和测试集
x, y = np.split(data, (4,), axis=1)
x = x[:, :2]
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1, train_size=0.6)
split(数据,分割位置,轴=1(水平分割) or 0(垂直分割))。
x = x[:, :2]是为方便后期画图更直观,故只取了前两列特征值向量训练
sklearn.model_selection.train_test_split随机划分训练集和测试集。
3.训练SVM
clf = svm.SVC(C=0.8, kernel='rbf', gamma=20, decision_function_shape='ovr')
clf.fit(x_train, y_train.ravel())
C:惩罚参数
默认值为1,惩罚参数是由于松弛变量而加入的,它表征的是对错误分类的惩罚程度,也就是不允许分类出错的程度。
C越大,表明越不允许分类出错,但是C越大越可能过拟合。
C太小的话趋于0的话,分类将不会关注分类是否正确的问题,只要求间隔 越大越好,此时分类也没有意义。
Kernel:核函数
作用:核函数的引入是为了解决线性不可分的问题,