[已解决]SVM支持向量机-性能、权重和参数
亲爱的所有,
在与神经网络斗争之后(见帖子)http://rapid-i.com/rapidforum/index.php/topic,5356.0.html)我决定听从建议尝试svm。
因此,我创建了一个带有测试数据的样例流程。
我的观察:
1)参数集输出的预测趋势精度为0.487,而日志的最佳性能为0.579。这让我很惊讶,因为我认为优化器会提供最好的组合。
2)得到SVM算子可以处理权值。这可能是一个愚蠢的问题,但我在哪里可以连接来自例如相关矩阵的权重?
顺便说一下:
-有没有进一步的文件,有助了解支持向量机的参数?
-神经网络提供内部规范化。对于svm也是这样吗,还是我需要一个单独的算子?
非常感谢你分享你的想法…
萨克斯
样本集:http://datahost.bplaced.net/sample3.xls
在与神经网络斗争之后(见帖子)http://rapid-i.com/rapidforum/index.php/topic,5356.0.html)我决定听从建议尝试svm。
因此,我创建了一个带有测试数据的样例流程。
我的观察:
1)参数集输出的预测趋势精度为0.487,而日志的最佳性能为0.579。这让我很惊讶,因为我认为优化器会提供最好的组合。
2)得到SVM算子可以处理权值。这可能是一个愚蠢的问题,但我在哪里可以连接来自例如相关矩阵的权重?
顺便说一下:
-有没有进一步的文件,有助了解支持向量机的参数?
-神经网络提供内部规范化。对于svm也是这样吗,还是我需要一个单独的算子?
非常感谢你分享你的想法…
萨克斯
样本集:http://datahost.bplaced.net/sample3.xls
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<过程version = " 5.2.003 " >
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<列出关键= "注释" >
< / >列表
<列出关键= " data_set_meta_data_information " >
< / >列表
< /操作符>
< /操作符>
“参数”<列表键= >
< / >列表
< /操作符>
> < /过程
<列出关键= " application_parameters " / >
< /操作符>
< /操作符>
> < /过程
< /操作符>
<列出关键= "日志" >
< / >列表
< /操作符>
> < /过程
< /操作符>
< /操作符>
<列出关键= " application_parameters " / >
< /操作符>
> < /过程
< /操作符>
> < /过程
0
答案
1)您正在记录错误的性能。您记录的性能是验证的最后一次迭代性能。将最后一个日志参数设置为Validation Performance,您将得到正确的结果。
2)据我所知,SVM不能处理权重
如果你想获得更多的信息,一个好的开始是查看维基百科(http://en.wikipedia.org/wiki/Support_vector_machine)或者在网上搜索其他关于svm的文章。 最好的
尼尔斯
啊,就是这样。验证操作符内的嵌套性能在每次迭代中都会被覆盖…当然可以。
我认为SVM可以处理加权的例子,因为当选择算子并按下F1时,这显示在能力下…
谢谢你尼尔斯!
回到将数据输入SVM之前是否进行归一化的问题:
受到这篇文章的启发http://rapid-i.com/rapidforum/index.php/topic,83.0.html我第一次使用规范化运行了这个过程,第二次没有使用。
结果表明,是否使用归一化是有区别的。在我的过程中,规范化导致性能下降。但是,我认为这可能是由于SVM的参数没有根据归一化数据进行优化,或者z变换可能不是正确的方法。
由于我还是一个初学者,我不确定这一点,但至少现在很明显,正常化有影响。
愿一切都好!
萨克斯
因为似乎支持向量机没有权重输入(尽管在文档中写的“仍然困惑”),一个解决方案可能是在将数据输入支持向量机之前先使用“权重缩放”操作符。
SVM支持权重,但不像大多数操作符那样具有'weights'端口,而是具有角色'weight'的属性。
这里有一个例子 最好的
尼尔斯
啊,谢谢你尼尔斯。这意味着支持向量机可以处理权重。现在我明白了。
吸引我注意的是:
在示例代码中,有一个带有权重的单独属性——每个示例对应一个权重。
当使用权重端口时,我为每个属性分配一个权重。
也许对专业人士来说是显而易见的,但对我来说是令人惊讶的
顺便说一下:我想知道为什么您在验证中对训练和测试都进行了规范化。这对结果不会有影响吗?假设你有1,1,1,5,9,7这样的数据,验证将其分成1,1,1用于训练,5,9,7用于测试。因此,我认为有必要在验证之前进行规范化。
你那样做有什么特别的原因吗?
PS:我仍然不确定z变换是否是一种对svm进行规范化的好方法。我读了几篇文章,但我还没有一个解决方案。当比较股票等时间序列时,我认为区间变换(0到1)或比例变换可能更好,因为z变换对两个值的相对距离有影响。
祝你一天愉快
萨克斯