我有4个数据维度。在R中,我使用plot3d,其中第4个维度是颜色。现在,我想使用SVM找到最佳回归线,以给我最佳的相关性。基本上,一个最适合的超平面取决于颜色维度。我该怎么做?
我有4个数据维度。在R中,我使用plot3d,其中第4个维度是颜色。现在,我想使用SVM找到最佳回归线,以给我最佳的相关性。基本上,一个最适合的超平面取决于颜色维度。我该怎么做?
这是基本思路(当然,具体公式将因您的变量名称和依赖项而异):
library(e1071)
data = data.frame(matrix(rnorm(100*4), nrow=100))
fit = svm(X1 ~ ., data=data)
然后您可以在拟合的对象上使用常规的summary
、plot
、predict
等函数。请注意,对于支持向量机(SVM),通常需要调整超参数以获得最佳结果。您可以使用tune
包装器进行此操作。另外,请查看我认为非常好的caret
包。
请查看e1071包中的svm函数。您还可以考虑使用kernelab、klaR或svmpath包。
编辑:@ CodeGuy,John已经为您提供了一个示例。我假设您的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