# 调整参数C,看看会有什么不同? svc = SVC(kernel='linear',C=0.001) svc.fit(X=x,y=label) #根据拟合结果,找出超平面 w = svc.coef_[0] a = -w[0]/w[1] xx = np.linspace(5,30) yy = a * xx - (svc.intercept_[0])/w[1] #根据超平面,找到超平面的两条边界线 b = svc.support_vectors_[0] yy_down = a * xx + (b[1]-a*b[0]) b = svc.support_vectors_[-1] yy_up = a * xx + (b[1]-a*b[0]) #绘制超平面和边界线 #(1)绘制样本点的散点图 sns.lmplot(data=data,x='Sugar',y='Butter',hue='CakeType',palette='Set1',fit_reg=False,scatter_kws={'s':150}) #(2)向散点图添加超平面 from matplotlib import pyplot as plt plt.plot(xx,yy,linewidth=4,color='black') #(3)向散点图添加边界线 plt.plot(xx,yy_down,linewidth=2,color='blue',linestyle='--') plt.plot(xx,yy_up,linewidth=2,color='blue',linestyle='--')
时间: 2024-01-24 20:19:59 浏览: 64
SVC.rar_ svc_C-SVC_svc
参数C是SVM中的正则化参数,它控制着对误分类点的惩罚程度。当C较小时,容错率较高,模型会尽可能地将数据划分正确,但是可能会出现过拟合的情况;当C较大时,容错率较低,模型会更加关注分类的准确性,但是可能会出现欠拟合的情况。
在你提供的代码中,设置了C=0.001,相对于默认值1.0来说,容错率较高,模型会更容易出现欠拟合的情况。因此,当调整C的值时,我们需要通过交叉验证等方法来确定最优的C值,以达到最好的模型效果。
阅读全文