我正在使用svm-rank .
在小型数据集上运行 svm_rank_learn
时:
Training set properties: 3 features, 12 rankings, 596 examples
运行在几秒钟内完成,我得到了一个有效的模型。但是当我使用一点 larger dataset :
Training set properties: 3 features, 30 rankings, 1580 examples
在第 29 次迭代中,运行卡住了几个小时。 这很奇怪,因为文档指出 svm-rank“在排名(即查询)数量中线性缩放”。
我的数据集或格式有什么问题?
最佳答案
However, since I did not want to spend more than an afternoon on coding SVMrank, I only implemented a simple separation oracle that is quadratic in the number of items in each ranking (not the O[k*log k] separation oracle described in [Joachims, 2006]). http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html
您或多或少将示例数量增加了 3 倍。因此,您预计时间会增加 9 倍。
[S]ince the documentation states that svm-rank "scales linearly in the number of rankings (i.e. queries)"
您还将排名数量扩大了 2 倍多一点。因此,将这两者结合起来,您预计训练时间将延长大约 20 倍。
这并不能解释为什么它会从几秒钟变成几个小时。
关于machine-learning - SVM 排名仅适用于小型数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258965/