我认为您正在尝试从头绪开始。关于SVM的使用应该知道的只是该算法正在属性的超空间中找到一个将两个类最好分开的超平面,其中best意味着在类之间具有最大的余量(知识的完成方式是您的敌人,因为它模糊了整体图片),如以下著名图片所示:
现在,还有一些问题。
首先,如何将那些令人讨厌的离群值无耻地放置在不同类别的点云的中心?
为此,我们允许优化器留下某些标签错误的样本,但惩罚每个这样的例子。为了避免多目标优化,对于标签错误的案件,应将罚金与边际大小合并,并使用附加参数C来控制这些目标之间的平衡。
其次,有时问题只是非线性的,找不到好的超平面。在这里,我们介绍内核技巧-我们只是将原始的非线性空间投影到具有某些非线性变换的高维空间,当然要由一堆附加参数定义,希望在所得的空间中该问题适合于简单的问题支持向量机:
再一次,通过一些数学运算,我们可以看到,通过用所谓的核函数代替对象的点积来修改目标函数,可以很好地隐藏整个转换过程。
最后,这全部适用于2个班级,而您有3个班级;怎么办呢?在这里,我们创建了3个2类分类器(坐着-没坐着,站着-没有站着,走路-没走过),并且在分类中将那些投票结合起来。
好的,这样看来问题就解决了,但是我们必须选择内核(在此我们凭直觉进行咨询并选择RBF)并至少拟合几个参数(C + kernel)。而且,我们必须为其提供过拟合安全的目标函数,例如,来自交叉验证的误差近似值。因此,我们让计算机继续工作,去喝咖啡,再回来看看是否有一些最佳参数。大!现在我们开始嵌套交叉验证,以得到误差近似值和瞧。
这个简短的工作流程当然过于简化而无法完全正确,但是显示了我认为您应该首先尝试使用随机森林的原因,该随机森林几乎是参数独立的,本机多类的,提供了无偏的错误估计,并且性能几乎与拟合的SVM一样好。