0

我通过运行带有“e1071”包的 SVM 遇到了一些问题。我有 2 个矩阵:“火车”包含每日回报

returns<- log(Prices)
train <- matrix(returns[1:300,])
train1<- matrix(returns_sig[1:300,])

return_sig 是一个矩阵,如果今天的回报大于昨天的回报,则给出“+1”,如果相反,则给出“-1”

library(e1071)

df<- data.frame(x = train, y = as.factor(train1))
train <- matrix(returns[1:300,])
train1<- matrix(returns_sig[1:300,])
tune.linear <- tune(svm, y ∼ ., data=df, 
                    kernel='linear', 
                    ranges = list(cost=c(0.1,1,2,3,5,10,50,100)))
summary(tune.linear)
linear<- tune.linear$best.model
plot(linear, df[train,])

这给了我错误:

xj[i] 中的错误:只有 0 可能与负下标混合

我希望我以正确的方式设置模型,但如果我不解决这个问题,我也无法进行plot()测试predict()。我的另一个问题是:如果我合并数据框中的 2 矩阵,我会得到一个包含 15000 条记录(300x50)的 df。我应该使用这个长的 1 列 df 还是应该使用正确的列数设置 df?

4

0 回答 0