【机器学习】【支持向量机SVM】Python不适用核函数构建非线性支持向量机SVM实战演练记录

非线性SVM可以通过核函数构建或者自己在数据中进行构建,如若不使用核函数构建则相对于仅对数据进行变化后构建了一个线性支持向量机完成了非线性分类任务罢了,未体现SVM的高深之处,此处仅作为学习阶段的实战演练,真实运用中一般不这样

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])
##绘图展示所绘制完成的数据
plt.figure(figsize=(11, 4))

plt.subplot(121)
plt.grid(True, which='both')
plt.axhline(y=0, color='k')
plt.plot(X1D[:, 0][y == 0], np.zeros(4), "bs")
plt.plot(X1D[:, 0][y == 1], np.zeros(5), "g")
plt.gca().get_yaxis().set_ticks([])
plt.xlabel(r"Sx_18", fontsize=20)
plt.axis([-4.5, 4.5, -0.2, 0.2])

plt.subplot(122)
plt.grid(True, which='both')
plt.axhline(y=0, color='k')
plt.axvline(x=0, color='k')
plt.plot(X2D[:, 0][y == 0], X2D[:, 1][y =