簡體   English   中英

在MATLAB中使用多元數據訓練LIBSVM

[英]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的每個鏈接具有相同的值。

這實際上不是matlablibsvm問題,而是與svm相關的一般問題。

我的廣義問題是LIBSVM如何工作以執行多元回歸?

LibSVM只是一個庫,尤其是-為回歸任務實現支持向量回歸模型。 簡而言之,在線性情況下,SVR會嘗試找到一個超平面,在該超平面上將數據點放置在其周圍的某個空白處(這是傳統SVM的一種雙重方法,它試圖以盡可能大的空白來分離數據) 。

來源:kernelsvm.tripod.com/

在非線性情況下,使用內核技巧(與SVM中的方式相同),因此它仍在尋找超平面,但是在由特定內核引發的特征空間中,這導致輸入空間中的非線性回歸。

在此處輸入圖片說明

關於SVR的很好的介紹可以在這里找到: http ://alex.smola.org/papers/2003/SmoSch03b.pdf

如何使用LIBSVM在Matlab中使用以上數據進行訓練? 我可以訓練整個數據作為svmtrain的輸入來創建模型,還是需要分別訓練每個鏈接並將模型創建用於預測? 有什么區別嗎? 注意:請注意,具有相同ID的每個鏈接具有相同的值。

您可以使用整個數據訓練SVR (因為這是一個回歸問題),但是:

  • 似乎var3LinkId是相同的變量( 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號碼),
  • 您應該在應用SVM之前對數據進行預處理,例如 每列包含[0,1]間隔中的值,否則某些功能可能僅由於其比例而變得比其他功能更重要。

現在,如果您想為每個鏈接創建一個單獨的模型,並按照上述提示進行操作,最終將得到1輸入變量( var2 )和1輸出變量var4 ,因此我不建議您執行此步驟。 通常,您設置的功能似乎非常有限,收集更多信息功能將很有價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM