“支持向量机:
spitfire_ch
成员职位:38大师
你好,
很抱歉最近用帖子轰炸你。我想这是学习阶段的症状。
无论如何,在摆弄支持向量机时,我经常遇到这样的问题,即它永远迭代(或者至少迭代几个小时)而没有进一步的进展。这只适用于某些内核类型,其他类型的内核可以在几分钟内完成分析。我认为这是因为他们(慢的人)没有设法收敛。在这种情况下,正确的做法是什么?我可以想到两个调整:
也许这也是要实现的想法:除了“停止一切按钮”之外,还有一个“停止子进程按钮”。这只会退出当前操作(例如。验证当前内核类型),然后继续。将选择未取消的操作的最佳参数。
谢谢你的建议
专员Hanspeter
很抱歉最近用帖子轰炸你。我想这是学习阶段的症状。
无论如何,在摆弄支持向量机时,我经常遇到这样的问题,即它永远迭代(或者至少迭代几个小时)而没有进一步的进展。这只适用于某些内核类型,其他类型的内核可以在几分钟内完成分析。我认为这是因为他们(慢的人)没有设法收敛。在这种情况下,正确的做法是什么?我可以想到两个调整:
- 使用更高的收敛性
- 最大迭代次数递减
也许这也是要实现的想法:除了“停止一切按钮”之外,还有一个“停止子进程按钮”。这只会退出当前操作(例如。验证当前内核类型),然后继续。将选择未取消的操作的最佳参数。
谢谢你的建议
专员Hanspeter
0
答案
你的两次调整是正确的。有时增加内核缓存(如果可用)也会有所帮助。但是,我建议首先从较低的迭代次数开始。从一个非常小的数字开始(比如500或1000),然后检查是否学到了什么。然后你可以增加一次或两次,以检查结果是否变化很大。如果不是这种情况,SVM可能根本无法使用这个核函数/设置进行学习。
您可以在持久化模式下使用“log”操作符记录信息。在这种情况下,您将保留到目前为止获得的信息。
一般来说,这确实是有帮助的,一些“随时”操作符(如遗传特征选择或加权)已经提供了这样的功能。这些操作符有一个参数,指示是否显示“应该停止?”对话框。我们可以在操作符级别为这个“随时停止”特性考虑一种通用机制,但我怀疑在通用子进程级别提供这种功能是否真的很直观。也许这在一般情况下是不可能的。
欢呼,
Ingo
非常感谢您的建议和见解。在尝试优化SVM学习器时,我将遵循您建议的步骤。我也很高兴听到关于日志操作员的消息。我不知道它的能力。这听起来确实非常有用——一些操作符的“停止”对话框功能也是如此。感谢您指出这些特性!
致以最亲切的问候
专员Hanspeter