C 参数不影响准确性 [用于字符串数据的 LibSVM]

Posted

技术标签:

【中文标题】C 参数不影响准确性 [用于字符串数据的 LibSVM]【英文标题】:C Parameter Doesn't Affect Accuracy [LibSVM for string data] 【发布时间】:2014-08-13 20:34:22 【问题描述】:

我正在使用 svm 解决蛋白质分类问题,因此我使用 LibSVM 处理字符串数据。 LibSVM 中定义的字符串内核是编辑距离内核,它取决于参数 gamma。在交叉验证、更改 C 和 gamma 参数期间,我在各个方面都获得了 75% 的准确率!此外,还改变了训练集模式的数量,我得到了相同的准确性。我使用 SCOP 数据库。我不知道这种行为!

【问题讨论】:

请不要在这里大喊大叫。键盘两侧都有 Shift 键,使它们更容易触及,因为正确大小写的文本更容易阅读和理解。用全部大写字母输入你的主题更难阅读,不会帮助你更快地得到答案,而且坦率地说是相当烦人和粗鲁的。谢谢。 很抱歉,但我不明白你所说的关于 shift 键的内容。再次抱歉。 我的意思是请不要在这里输入您的问题。 :-) Shift 键使您可以正确地大小写文本,因为正确大小写时更容易阅读。 (在合适的地方使用大写,在不合适的地方不要使用。) 【参考方案1】:

查看每种错误分类错误的计数。如果你得到像这样的恒定错误率,那么很可能每个观察都被分配到同一个类。例如,如果 75% 的训练观测值属于一个类,并且分类器将每个观测值分配给该类,那么您将看到 25% 的错误率。

【讨论】:

是的!清除!我有 3/4 的训练集带有标签 -1。因此,我的 svm 将所有模式分类为 -1 类。非常感谢这个建议。 但是如果我的编辑距离内核有这个问题,我该如何解决呢?唯一的解决方案是更改内核?或者可能是数据不平衡的问题? 我特别不熟悉编辑距离内核,但我认为这更有可能是数据平衡问题。由于您的不平衡似乎并不太严重,因此加权 SVM 可能会起到作用。使用 libsvm 很容易做到这一点。如果您使用 R,这是通过 svm 函数调用的 class.weights 参数完成的。如果你使用的是 R 以外的东西,它应该不会有太大的不同。

以上是关于C 参数不影响准确性 [用于字符串数据的 LibSVM]的主要内容,如果未能解决你的问题,请参考以下文章

联邦学习将如何影响您的日常生活?

将 LIBSVM grid.py 用于不平衡数据?

我应该在 SMOTE 之前还是之后执行网格搜索(用于调整超参数)?

sklearn 功能不影响准确性

Python:float() 参数必须是字符串或数字,而不是 'pandas._libs.interval.Interval'

随机森林