Python 用libsvm理解SVM问题

Python 用libsvm理解SVM问题,python,svm,libsvm,Python,Svm,Libsvm,在这里我发布了两个数字以及一些问题,有人能帮我解决它们吗,因为我真的陷入了困境 1. Training a simple linear SVM: % svm-train -t 0 -c 100 data0 data0.model % python drawBoundary.py data0 where: -t 0 -- use a linear kernel -c 100 -- set "C" = 100, which means "overfit a lot" 然后是结果图: 这

在这里我发布了两个数字以及一些问题,有人能帮我解决它们吗,因为我真的陷入了困境

1. Training a simple linear SVM:
% svm-train -t 0 -c 100 data0 data0.model
% python drawBoundary.py data0
where: 
-t 0    -- use a linear kernel
-c 100  -- set "C" = 100, which means "overfit a lot"
然后是结果图:

这是一个易于分离的数据集,由少量的支持向量反映出来。在绘图中,SV被画得很大(并且在边距上,虚线距离决策边界一个单位,实线)

接下来是第一个问题:

Q1: You should have found that it takes 3 support vectors. Could you have fewer (eg., 2) support vectors here? And why?
我的答案是否定的,3是最小的数字。但那只是我的直觉。我不知道为什么。谁能给我解释一下原因吗

以下是结果图:

第二个问题是:

Q1: You should have found that it takes 3 support vectors. Could you have fewer (eg., 2) support vectors here? And why?
问题2:为什么会有这些小斑点?你要转多高 gamma向上移动,以便在每个 示例(即每个决策边界仅围绕一个示例)


对于这个问题,我完全迷路了

第一个问题应该是3点,因为你需要在同一侧的两个点来画一条线,然后在另一侧的一个点用来画第二条线(与第一条线平行)。这3个点将被选择为具有最大裕度(即平行线具有最大间隔/距离)。如果不使用3个点,那么始终有一种方法可以增加两条平行线之间的距离,因此这不是我们正在寻找的解决方案

对于第二个问题,我想必须尝试几个gamma值来回答。Gamma通常取一组10次方的值(不确定这是正确的英语:)例如{110100}={10^0100^1102}。我们通过交叉验证来选择适合我们的数据。这样做使我们能够有一个有效的支持向量机,既不过度拟合,也不欠拟合


希望这有帮助

非常感谢!但对于问题2,为什么会有这些小斑点?这是否意味着这些是利润线?我很困惑。