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

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

SVM性能下降:

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

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

>维度增加(属性数量)

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

内核评估更复杂)

改变参数

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

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

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

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

要使用的数据集:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值