基于支持向量机的数据分类以及绘制决策边界(超平面)
为了方便结果可视化,本文主要利用二维数据点进行讨论
目录:
1、导入数据并观察数据:
2、训练集训练模型
3、绘制决策边界(超平面)观察分类效果
4、利用这四组参数对测试集进行测试并绘制图像
首先开始就列出利用的库
# coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm # 导入SVM模型模块
from scipy.io import loadmat # 读取mat文件利用的模块
1、导入数据并观察数据:
从matlab的mat文件中导入训练集和测试集,训练集和测试集都是二维数据点构成的矩阵,标签是一维点构成的矩阵(主要分为两类,故为1和2)
A=loadmat('data3.mat')
print(A.keys())
X=A['X'] # 训练集
y=A['y'] # 训练集对应标签
X_val=A['Xval'] # _val 为测试集
y_val=A['yval']
X1=X[:,0]
X2=X[:,1]
X_val1=X_val[:,0]
y=y.reshape(X1.shape) # 由于y是n*1的矩阵,要变成一个向量才能带入模型中
y_val=y_val.reshape(X_val1.shape) # 同y
打印出来看看
分别绘制出训练集和测试集的数据点分布情况
plt.scatter(X[:,0],X[:,1]<