网格搜索中的交叉验证非常慢(libsvm)

时间:2013-12-21 12:32:32

标签: opencv machine-learning computer-vision svm libsvm

我在62个类上使用libsvm,每个类有2000个样本。问题是我想使用网格搜索来优化我的参数。我将范围设置为C=[0.0313,0.125,0.5,2,8]gamma=[0.0313,0.125,0.5,2,8] 5倍。交叉量不会在每个参数的前两个参数处完成。有更快的方法来进行优化吗?我可以将折叠次数减少到3吗?写入的迭代次数一直在(1629,1630,1627)范围内播放我不知道是否相关

优化完成,

#iter = 1629 nu = 0.997175 obj = -81.734944, rho = -0.113838 nSV = 3250, nBSV = 3247

1 个答案:

答案 0 :(得分:0)

找到一个好的模型这是一项非常昂贵的任务。让我们做一些计算:

62 classes x 5 folds x 4 values of C x 4 values of Gamma = 4960 SVMs

您可以随时减少折叠次数,这会降低搜索质量,但会减少约40%次训练的SVM的数量。

最昂贵的部分是SVM不适合多标签分类的事实。它需要训练至少O(log n)模型(在纠错代码方案中),O(n)(在libsvm one-vs-all中)到O(n^2)(在一对一场景中) ,它取得了最好的结果)。

转换到一些快速多标签模型可能更有价值吗?比如一些ELM(极限学习机)?