在matlab中,使用支持向量机进行二分类时,最后的可视化展示同样重要。那么我们如何做出像下图所示的标注有支持向量、分类超平面等信息的图片呢?
1.训练模型
首先需要训练好我们的SVM模型。模型训练结果保存在变量svmStruct2中。
svmStruct2 = fitcsvm(newdata,new_label,'KernelFunction','linear');
2.求解分类超平面表达式
在svmStruct2变量中,是一个结构化的数据,包含很多与模型有关的数据,其中Beta 和 Bias 就包含我们画超平面所需的斜率和截距信息。在官方的文档中是这样介绍的。
官方文档中的这样一句话,值得我们思考,叫做根据f(x)的根定义超平面,也就是说f(x) = 0 时,得到的平面就是我们想要的分类超平面,也就是第一张图的黑色分界线。
那么对于我的二维数据而言,f(x)函数也是二维函数,因此得到
f ( x , y ) = β 1 ∗ x + β 2 ∗ y + b . f(x,y) = \beta1*x+\beta2*y + b\,. f(x,y)