1
21
如果你考虑支持向量机如何“使用”内核矩阵,你会发现你不能以你正在尝试的方式真正做到这一点(如你所见:—) 当我第一次使用kernlab+核矩阵的时候,我确实有点挣扎…巧合的是,它也用于图形内核! 无论如何,让我们首先认识到,由于SVM不知道如何计算内核函数,因此它需要在新的(测试)示例之间计算这些值,并在培训步骤中选择作为支持向量的示例。 因此,您需要计算 全部的 把你的例子放在一起。稍后,您将在适当的时候从内核矩阵中删除行+列,对其中一些进行培训,并对其他的进行测试。让我给你看代码。
我们可以在
您需要点击返回几(2)次,以便绘制绘图,并让示例完成,但是您现在应该在工作区中有一个内核矩阵,名为
现在,选择用于测试的示例子集
从这一点开始,我要:
代码如下:
那就差不多了。祝你好运! 对以下评论的回复
假设你有一个向量
如果你想从
所以
是的,我把两个命令输入到一个命令中:
既然您已经训练了模型,那么您需要用您的测试示例给它一个新的内核矩阵。
不管怎样,也许这更清楚了:
现在
更新(2014-01-30)以回复@wrahool的评论
我已经有一段时间没玩过了,所以
对。简而言之,如果你想
呼唤
所以,先做
我进一步将
这是一种防御性的编码,以确保在执行索引操作之后,返回的对象与被索引的对象具有相同的类型。
在R中,如果只索引二维(或更高的(?)的一个维度)对象,则返回一个较低维度的对象。我不想通过
例如
同样的情况也会发生在
|
2
2
首先,我没有用
kernlab
很多。但简单地看一下文档,我确实看到了
这看起来很直接:使用随机抽样生成一个训练集
你可以找到 caret 由马克斯库恩包装有用。它为各种回归、分类和机器学习方法和包提供了一个通用的评估和测试框架,包括 克兰伯 ,并包含多个小插曲和一个 JSS paper . |
3
1
Steve Lianoglu是对的。 在kernlab中,它是有点连线的,在预测时,它需要在每个测试示例和支持向量之间输入内核矩阵。你需要自己找到这个矩阵。 例如,一个测试矩阵[n x m],其中n是测试样本的数量,m是学习模型中的支持向量的数量(按SVIndex(模型)的顺序排列)。 示例代码
内核是输入内核矩阵。trainidx和testidx是用于培训和测试的ID。 |
4
0
根据解决方案的元素自己构建标签。使用这种替代的预测方法,它采用KSVM模型(M)和原始训练格式(D)的数据。
K是
|