2011-11-04 117 views
4

我有4個維度的數據。在R中,我使用plot3d,第四維是顏色。我想現在使用SVM找到最佳迴歸線,以給我最好的相關性。基本上,取決於色彩維度的最佳擬合超平面。我怎樣才能做到這一點?R中迴歸的SVM

+0

什麼是你試圖倒退?你沒有給出因變量。你是否清楚支持向量機的含義? – Iterator

+0

修改:取決於顏色尺寸(第四維) – CodeGuy

+0

這很有幫助。順便說一句,通常的術語是顏色變量取決於其他變量。更好的術語是其他變量是預測變量,顏色變量是響應變量。 – Iterator

回答

10

這是基本的想法(當然具體計算公式會根據您的變量名稱有所不同,這是相關的):

library(e1071) 

data = data.frame(matrix(rnorm(100*4), nrow=100)) 

fit = svm(X1 ~ ., data=data) 

然後你就可以使用普通summaryplotpredict等功能在適合的對象上。請注意,對於SVM,通常需要調整超參數以獲得最佳結果。你可以用tune包裝來做到這一點。還請查看caret包,我認爲這很好。

+0

你能舉一個我如何使用調諧功能的例子嗎?另外,你會如何建議我使用插入符號? – CodeGuy

+0

X1是什麼?我的4個維度是x,y,z,q – CodeGuy

+0

@CodeGuy這只是一個例子。示例代碼。 'X1'是他提供的示例中第一列的名稱。 – joran

5

看看e1071包中的svm函數。 您也可以考慮kernelab,klaR或svmpath軟件包。

編輯:@CodeGuy,約翰給你提供了一個例子。我想你的4個維度是用來分類數據的特徵,而且你還有另外一個變量是真正的類別。

y <- gl(4, 5) 
x1 <- c(0,1,2,3)[y] 
x2 <- c(0,5,10,15)[y] 
x3 <- c(1,3,5,7)[y] 
x4 <- c(0,0,3,3)[y] 

d <- data.frame(y,x1,x2,x3,x4) 

library(e1071) 
svm01 <- svm(y ~ x1 + x2 + x3 + x4, data=d) 
ftable(predict(svm01), y) # Tells you how your svm performance 
+0

我已經看過它,我無法弄清楚。你能給我示例代碼嗎?我有4個維度的數據。 – CodeGuy

+0

我編輯了我的答案。見上面 –

+0

你是什麼意思是另一個變量?想象一下帶有數據的3D圖。那麼存在第四維,其由數據點的顏色給出。我想要找到依賴於第四維(顏色)的3d繪圖中的最佳迴歸超平面。你能否更新代碼來反映這一點?我怎麼能得到超平面的方程,以便我可以實際繪製它來查看它看起來像什麼? – CodeGuy