本次使用的数据是鸢尾花数据
import numpy as np #导入科学计算库
import matplotlib.pyplot as plt #画图
from sklearn import datasets #导入数据
iris=datasets.load_iris() #导入鸢尾花数据
#获取特征数据和标签数据
X=iris.data #数据
y=iris.target #标签
#进行筛选,选择标签为0和1的样本,并且特征选择前2个
X=X[y<2,:2]
y=y[y<2]
#数据可视化展示
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()
#数据切分
#数据归一化
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
ss=StandardScaler() #定义出归一化函数
ss.fit(X) #训练数据
X_tranceform=ss.transform(X) #对鸢尾花数据进行归一化
#画直线函数,绘制分界线
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 = model.p

本文通过鸢尾花数据集,实战讲解支持向量机(SVM)的使用。选取标签为0和1的样本,关注前两列特征。对比了C参数为100000000(hard margin)和0.1(soft margin)的svc模型训练效果,探讨其容错性和分类边界。
最低0.47元/天 解锁文章
797

被折叠的 条评论
为什么被折叠?



