深入了解SVM算法在解决线性不可分类时,对特征集进行多项式、核函数转换(升维)将其转换为线性可分类问题的思想。完成以下任务: 对照参考资料“支持向量机-课件-518.docx”,将其中的例子代码在Jupyter中重新做一遍。并将例子代码中采用多项式分类函数、高斯核函数对鸢尾花、月亮数据集进行SVM训练所得到最终分类决策函数,输出出来
目录
一.多项式分类函数对鸢尾花、月亮数据集进行SVM训练
1.SVM处理线性数据集(鸢尾花数据集)
代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
iris = datasets.load_iris()
X = iris.data
y = iris.target
X = X [y<2,:2] #只取y<2的类别,也就是0 1 并且只取前两个特征
y = y[y<2] # 只取y<2的类别
# 分别画出类别0和1的点
plt.scatter(X[y==0,0],X[y==0,1],color='red')
plt.scatter(X[y==1,0],X[y==1,1],color='blue')
plt.show()
输出
定义绘制决策边界函数与绘制决策边界
def plot_decision_boundary(model, axis):
x0, x1 = np.meshgrid(
np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1,1),
np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1,1)
)
X_new = np.c_[x0.ravel(), x1.ravel()]
y_predict =