SVM实践

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn import svm
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib as mpl
import numpy as np

data = load_iris()
X,Y = data['data'],data['target']

X = X[:,:2]# shape (150, 2)
# print(X)
print(X.shape)
train_x,test_x,train_y,test_y = train_test_split(X,Y,test_size=0.3)
# print(label)
# print(test_x.shape)
clf = svm.SVC(gamma='auto')
clf.fit(train_x,train_y)
predit_test = clf.predict(test_x)
acc_test = 1.0* sum(predit_test==test_y)/len(predit_test)
predict_train = clf.predict(train_x)
acc_train = 1.0* sum(predict_train==train_y)/len(predict_train)
# print('acc_train',acc_train)
# print('acc_test',acc_test)
# print(Y.shape)
# print(X[0].shape)
# print(Y)
# print('predict',predit)
# print('test_y: ',test_y)
# plt.scatter(X[:,0],X[:,1],c=Y)
x0_min,x1_min = X.min(0)# X有两列,返回每列的最小值
x0_max,x1_max = X.max(0)
x0 = np.linspace(x0_min-0.5,x0_max+0.5,500)
x1 = np.linspace(x1_min-0.5,x1_max+0.5,500)
# print('x0,x1')
# print(x0)
# print(x1)
xx0,xx1 = np.meshgrid(x0,x1)#
test_grid = np.stack((xx0.flat,xx1.flat),axis=1)# 拉平.flat
# print('xx0,xx1')
# print(xx0)
# print(xx1)
# print('grid')
# print(test_grid)
cm_light = mpl.colors.ListedColormap(['#A0FFA0', '#FFA0A0', '#A0A0FF'])
cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])
predict_grid = clf.predict(test_grid)

plt.pcolormesh(xx0,xx1,predict_grid.reshape(xx0.shape),cmap=cm_light)
plt.scatter(train_x[:,0],train_x[:,1],c=train_y,cmap=cm_dark,marker='o',edgecolors ='k')
plt.scatter(test_x[:,0],test_x[:,1],c=test_y,cmap=cm_dark,marker='^')
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值