[英]Training LIBSVM with multivariate data in MATLAB
我的廣義問題是LIBSVM如何工作以執行多元回歸? 詳細地說,我有一些鏈接數量的數據。 (示例3鏈接)。 每個鏈接都有3個因變量,當在模型中使用它們時,它們會提供輸出Y。我以一定間隔在這些鏈接上收集了數據。
LinkId | var1 | var2 | var3 | var4(OUTPUT)
1 | 10 | 12.1 | 2.2 | 3
2 | 11 | 11.2 | 2.3 | 3.1
3 | 12 | 12.4 | 4.1 | 1
1 | 13 | 11.8 | 2.2 | 4
2 | 14 | 12.7 | 2.3 | 2
3 | 15 | 10.7 | 4.1 | 6
1 | 16 | 8.6 | 2.2 | 6.6
2 | 17 | 14.2 | 2.3 | 4
3 | 18 | 9.8 | 4.1 | 5
我需要執行預測才能找到輸出
(2,19,10.2,2.3).
如何使用LIBSVM在Matlab中使用以上數據進行訓練? 我可以訓練整個數據作為svmtrain的輸入來創建模型,還是需要分別訓練每個鏈接並將模型創建用於預測? 有什么區別嗎? 注意:請注意,具有相同ID的每個鏈接具有相同的值。
這實際上不是matlab
或libsvm
問題,而是與svm
相關的一般問題。
我的廣義問題是LIBSVM如何工作以執行多元回歸?
LibSVM只是一個庫,尤其是-為回歸任務實現支持向量回歸模型。 簡而言之,在線性情況下,SVR會嘗試找到一個超平面,在該超平面上將數據點放置在其周圍的某個空白處(這是傳統SVM的一種雙重方法,它試圖以盡可能大的空白來分離數據) 。
在非線性情況下,使用內核技巧(與SVM中的方式相同),因此它仍在尋找超平面,但是在由特定內核引發的特征空間中,這導致輸入空間中的非線性回歸。
關於SVR的很好的介紹可以在這里找到: http ://alex.smola.org/papers/2003/SmoSch03b.pdf
如何使用LIBSVM在Matlab中使用以上數據進行訓練? 我可以訓練整個數據作為svmtrain的輸入來創建模型,還是需要分別訓練每個鏈接並將模型創建用於預測? 有什么區別嗎? 注意:請注意,具有相同ID的每個鏈接具有相同的值。
您可以使用整個數據訓練SVR
(因為這是一個回歸問題),但是:
var3
和LinkId
是相同的變量( 1->2.2, 2->2.3, 3->4.1
LinkId
1->2.2, 2->2.3, 3->4.1
LinkId
1->2.2, 2->2.3, 3->4.1
),如果是這種情況,則應刪除LinkId
列, var1
獨特的遞增整數? 如果是這樣,這些也可能是無用的功能(由於它們似乎不攜帶任何信息,因此它們似乎是您的id
號碼), [0,1]
間隔中的值,否則某些功能可能僅由於其比例而變得比其他功能更重要。 現在,如果您想為每個鏈接創建一個單獨的模型,並按照上述提示進行操作,最終將得到1
輸入變量( var2
)和1
輸出變量var4
,因此我不建議您執行此步驟。 通常,您設置的功能似乎非常有限,收集更多信息功能將很有價值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.