2013-12-21 75 views
1

我在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)範圍內打,我不知道這是有關交叉驗證在網格搜索(libsvm)中非常緩慢

優化完成後,

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

回答

0

這簡直是昂貴的任務找到一個很好的模式。讓我們做一些計算:

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

你總是可以減少褶皺的數量,這會降低搜索質量,但會減少約40%訓練的支持向量機的全部金額。

最昂貴的部分是事實,SVM不適合多標籤分類。它需要至少訓練O(log n)模型(在糾錯代碼場景中),O(n)(在libsvm一對一)或甚至O(n^2)(在一對一場景中獲得最佳結果)。

也許切換到一些快速多標記模型會更有價值嗎?像例如一些ELM(極限學習機)?