matplotlib可以绘制极坐标吗 如何用Python实现支持向量机?
如何用Python实现支持向量机?
1、实现线性分类
将numpy作为np导入
作为工厂导入
从生成器导入make _ blobs
从导入服务中心
#随机生成的点,n_samples:样本点数;中心:样本点分为几类;Random_state:随机生成每次都是一致的;Cluster_std:每类样本点之间的分散度。值越大,分散度越大。
x,y make _ blob(n _ samples 50,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()画边界线,圈出支持向量。
def plot_svc_decision_function(型号,axNon:
#绘制2D SVC的决策函数
如果ax是Non:
ax plt.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个二维点。
xy np.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)
绘制效果图如下:
Python如何绘制长方形?
导入为plt #定义plt绘图组件。
d,e [-1,-1,1,1,-1],[-1,1,1,-1] #定义五个点。最后一点与第一点不谋而合。
(D,E) #依次在五个点前画四条线。形成一个长方形(这里是一个正方形)
()#显示图片
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。