import matplotlib.pyplot as plt
import numpy as np
from sklearn import svm
from sklearn.model_selection import train_test_split
#训练svm分类器
x= np.array([[-1,-1],[-2,-1],[1,1],[2,1],[-1,1],[-1,2],[1,-1],[1,-2]])
y= np.array([0,0,1,2,0,2,1,1])
x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=7,random_state=1)
clf=svm.SVC(C=0.8,verbose=True,kernel='rbf',decision_function_shape='ovr',max_iter=-1,probability=True)
clf.fit(x_train,y_train.reshape(-1,1))
#画图
X=x_train
plot_step=0.02
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step),
np.arange(y_min, y_max, plot_step))#生成网格采样点
grid_test = np.stack((xx.flat, yy.flat), axis=1) #生成测试点
grid_hat = clf.predict(grid_test) #用训练好的模型对测试点进行预测
grid_hat = grid_ha
用plt.pcolormesh绘制分类图及分类边界
最新推荐文章于 2024-05-19 08:49:00 发布