2012-06-18 76 views
3

我想問一下,如果有人有一個想法或例子如何做支持向量迴歸python與高維輸出(多於一個)使用libsvm的python綁定?我檢查了這些例子,他們都假設輸出是一維的。使用python的libsvm支持向量迴歸高維輸出

+0

'多個' - >你不是指多維嗎? – Junuxx

+1

[This](http://dl.acm.org/citation.cfm?id=1820839)似乎描述了一種可以做你想找的方法,這是相當新的。不知道是否libsvm可以做到這一點。 – Junuxx

回答

3

支持向量機作爲一個數學框架是根據單個預測變量制定的。因此,大多數實現它們的庫都會將它反映爲在其API中使用一個目標變量。

你可以做的是爲數據中的每個目標維度訓練單個SVM模型。

  • 在好的方面,你可以訓練他們//集羣上的每個模型是相互獨立

  • 負側,分車型將共享什麼也不會從他們在輸入數據的結構,分別發現和潛在的利益需要大量的內存來存儲模型,因爲他們將沒有共享的中間表示

支持向量機的變體可以很可能在多地設計任務學習設置學習一些常見的基於內核的中間表示適合重複使用以預測多維目標,但是這並未在libsvm AFAIK中實現。谷歌爲multi task learning SVM如果你想了解更多。另外,多層感知器(一種前饋神經網絡)可以自然地處理多維結果,因此應該更好地共享跨目標重用的數據的中間表示,尤其是如果它們足夠深時第一層使用自動編碼器目標函數以無監督的方式預先訓練。

您可能需要看看http://deeplearning.net/tutorial/,以便對各種神經網絡架構,實用工具和實例進行有效實施。

4

libsvm可能不是此任務的最佳工具。

您所描述的問題稱爲多元迴歸,通常用於迴歸問題,支持向量機不一定是最好的選擇。

你可以嘗試類似組套索(http://www.di.ens.fr/~fbach/grouplasso/index.htm - matlab)或稀疏組套索(http://spams-devel.gforge。 inria.fr/ - 似乎有一個python接口),它解決了不同類型正則化的多元迴歸問題。

相關問題