当前位置:   article > 正文

1071svm函数 r语言,在R中分析SVM(e1071)

r语言svm-rfe分析得不到accuracy

在“工作SVM”方面 – 什么使SVM工作“更难”是一个更复杂的模型,不容易分离,更高的维度和更大,更密集的数据集.

SVM性能下降:

>数据集大小增加(数据点数)

>稀疏度降低(零个更少)

>维度增加(属性数量)

>使用非线性内核(并且内核参数可以使用

内核评估更复杂)

改变参数

您是否可以更改参数以使SVM花费更长时间.当然,参数会影响您将获得的解决方案的质量,并且可能没有任何意义.

使用C-SVM,变化的C将导致不同的运行时间. (nu-SVM中的相似参数是nu)如果数据集是合理可分的,那么使C更小将导致更长的运行时间,因为SVM将允许更多的训练点成为支持向量.如果数据集不是很可分离,那么使C更大将导致更长的运行时间,因为您实际上告诉SVM您需要一个与数据紧密匹配的窄边距解决方案,并且当数据不容易计算时需要更长的时间来计算分离.

通常,您在进行参数搜索时会发现,有些参数会增加计算时间而精度没有明显提高.

其他参数是内核参数,如果你改变它们以增加计算内核的复杂性,那么SVM运行时自然会增加.线性内核很简单,速度最快;非线性内核当然需要更长的时间.一些参数可能不会增加内核的计算复杂性,但会强制使用更复杂的模型,这可能需要更长的SVM才能找到最佳解决方案.

要使用的数据集:

MNIST handwriting recognition dataset是一个很好用的 – 你可以随机选择数据的子集来创建越来越大的数据集.请记住,链接中的数据包含所有数字,SVM当然是二进制的,因此您必须将数据减少到两位数或执行某种多类SVM.

您也可以轻松生成数据集.要生成线性数据集,随机选择超平面的法向量,然后生成数据点并确定它所在的超平面的哪一侧以标记它.添加一些随机性以允许超平面的特定距离内的点有时被不同地标记.通过增加类之间的重叠来增加复杂性.或者生成一些正态分布点的簇,标记为1或-1,以便分布在边缘重叠.经典的非线性示例是棋盘格.生成点并以棋盘图案标记它们.更难以扩大正方形的数量,增加尺寸并增加数据点的数量.当然,你必须使用非线性内核.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/444459
推荐阅读
相关标签
  

闽ICP备14008679号