【机器学习】【支持向量机SVM】Python核函数参数效果对比实战演练

kernel参数

对于模型中的kernel参数中默认为"rbf"(高斯核函数),该参数必须是linear(线性) poly rbf三个中的一个

import numpy as np
from matplotlib import pyplot as plt

'''构造数据'''
X1D = np.linspace(-4, 4, 9).reshape(-1, 1)
X2D = np.c_[X1D, X1D ** 2]
y = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])
from sklearn.datasets import make_moons

X, y = make_moons(n_samples=100, noise=0.15, random_state=42)  #指定两个环形测试数据

from sklearn.svm import SVC
from sklearn.pipeline import Pipeline  ##使用操作流水线
from sklearn.preprocessing import StandardScaler

'''通过设置degree值来进行对比实验'''
poly_kernel_svm_clf = Pipeline([
    ("scaler", StandardScaler()),
    ("svm_clf", SVC(kernel="poly", degree=3, coef0=1, C=5))  ##coef0表示偏置项
])
poly_kernel_svm_clf.fit(X, y)

poly100_kernel_svm_clf = Pipeline([
    ("scaler", StandardScaler()),
    ("svm_clf", SVC(kernel="poly", degree=100, coef0=1, C=5))
])
poly100_kernel_svm_clf.fit(X, y)


###制图展示对比结果
def plot_predictions(clf, axes):
    xOs = np.linspace(axes[0], axes[1], 100)
    x1s = np.linspace(axes[2], axes[3], 100)
    x0, x1 = np.meshgrid(xOs, x1s)  ##构建坐标棋盘
    X =