我知道这已经有一段时间了,但我会试一试,以防其他人提出这个问题。
假设我们有一个2D训练集来训练SVM模型,换句话说特征空间是一个2D空间。我们知道,一个核SVM模型导致得分(或决定)的形式的函数:
F(X)=总和I = 1至N(一个我ý我 K(X,X我))+ b
其中N是支持向量的数目,X我是我个支持向量,一个我是估计的拉格朗日乘数以及ÿ我相关联的类别标签。决策函数的值(分数)描绘了从决策边界观察的距离x。
现在假设对于2D特征空间中的每个点(X,Y),我们都可以找到决策函数的相应得分。我们可以绘制在3D欧几里德空间,其中X对应于第一特征矢量的数值F ,Y至第二特征的数值F 的结果,以及Z到决策功能的返回为每个点(X,Y)。这个3D图形与Z = 0平面的交集为我们提供了二维特征空间的决策边界。换句话说,假设决策边界由分数等于0的(X,Y)点形成。似乎逻辑上的权利?
现在在MATLAB中,你可以很容易地做到这一点,首先创建在X网格,Y空间:
d = 0.02;
[x1Grid,x2Grid] = meshgrid(minimum_X:d:maximum_X,minimum_Y:d:maximum_Y);
d根据电网所需的分辨率选择。
那么对于一个训练有素的模型SVMModel找到每一个网格点的分数:
xGrid = [x1Grid(:),x2Grid(:)];
[~,scores] = predict(SVMModel,xGrid);
最后画出决策边界
figure;
contour(x1Grid,x2Grid,reshape(scores(:,2),size(x1Grid)),[0 0],'k');
轮廓给了我们一个2D图形,其中约3号信息尺寸在2D平面中以实线表示。这些线表示具有相同Z值的等响应值,换句话说(X,Y)点。在我们的场合,轮廓给了我们决定的界限。
希望我帮助让这一切变得更加清晰。您可以通过以下链接找到非常有用的信息和示例: