我想预测某一资产的短期方向。我基于Dane_train数据框(8058行)构建了一个SVM模型:
SVM1 <- e1071::svm(Direction ~ logReturns_1, data = Dane_train, type = "C-classification", cost = 0.1, kernel = "linear", scale = FALSE)
然后我想对Dane_test数据框中的记录进行预测:
pred <- predict(SVM1, data = Dane_test, method = "class")
第一个奇怪的事情是我得到了长度为8058的因子向量——而不是来自测试数据的2015。然后当我执行:
table(pred, Dane_test$Direction)
由于参数长度不合适,我得到了一个错误。我做错了什么?
回答:
predict
函数的参数有点不同。你需要使用newdata=Dane_test
而不是data=Dane_test
。