1、实现线性分类
将numpy作为np导入
作为工厂导入
从生成器导入make_blobs
从导入服务中心
#随机生成的点,n_samples:样本点数;中心:样本点分为几类;random_state:随机生成每次都是一致的;cluster_std:每类样本点之间的分散度。值越大,分散度越大。
x,ymake_blob(n_samples50,centers2,random_state0,clust:,0],x[:,1],cy,cmapsummer)
#使用线性分类svc拟合
#svc函数还可以包括以下参数(具体例子见):文章末尾
#1,c(c越大,分类越严格,不能有错;当c趋于小时,意味着可以有更大的误差容限)
#2,内核(内核必须是[;线性和线性。;,保利,rbf,乙状结肠,预计算],默认为rbf).
#3,gamma(gamma越大,模型越复杂,会导致过拟合,对线性核函数没有影响)。
svc型(内核线性)
(x,y)
绘图_svc_决策_函数(模型)
这里我们用函数plot_svc_decision_function()画边界线,圈出支持向量。
defplot_svc_decision_function(型号,axnon:
#绘制2dsvc的决策函数
如果ax是non:
axplt.gca()
#找到图片的x轴和y轴的边界
xlim_xlim()
ylim_ylim()
#创建网格以评估模型
x(xlim[0],xlim[1],30)
y(ylim[0],ylim[1],30)
y,x(y,x)
#在图上形成所有坐标点(900,2)和900个二维点。
xynp.vstack([x.ravel(),y.ravel()])。t
#计算每个点到边界的距离(30,30)
p_function(xy)。重塑()
#绘制等高线(距离边界线为0的实线和距离为1的过度支持向量的虚线)。
(x,y,p,colorsk,色阶[-1,0,1],alpha0.5,线型[-,-,-])
#圈出支持向量
如果plot_support:
#_vectors_function可以打印出所有支持向量的坐标。
(_vectors_[:,0],_vectors_[:,1],s200,c,edgecolorsk)
_xlim(xlim)
_ylim(ylim)
绘制效果图如下:
导入为plt#定义plt绘图组件。
d,e[-1,-1,1,1,-1],[-1,1,1,-1]#定义五个点。最后一点与第一点不谋而合。
(d,e)#依次在五个点前画四条线。形成一个长方形(这里是一个正方形)
()#显示图片