使用R中的SVM进行的股票预测和新闻情绪?

时间:2019-07-05 13:20:45

标签: r machine-learning svm prediction sentiment-analysis

我想与R中的SVM一起预测股票价格和新闻情绪得分,以便了解新闻是否对股票价格及其预测产生影响。我读到支持向量机(svm)是解决此问题的一种很好的机器学习方法。我有一栏代表股票和新闻的日期,一栏代表那一天的股票价格,四栏代表基于不同词汇的情绪得分。我想先用其中一种词汇来测试,如果模型可行,再尝试另一种。数据集如下。我找到了一些使用python的示例,但找不到R的东西。我喜欢使用svm()

中的e1071 package函数

我将数据分为训练和测试集:

sample <- sample(nrow(sentGI),nrow(sentGI)*0.70)
df.trainGI = sentGI[sample,]
df.testGI = sentGI[-sample,]

我已经尝试过此SVM代码,但是我的错误预测率是100

plot(df.trainGI$GSPC.Close, df.trainGI$SentimentGI, pch = 19, col = c("red", "blue"))


svm_model_GI <- svm(SentimentGI.Class ~ ., df.trainGI)
print(svm_model_GI)

plot(svm_model_GI, df.trainGI)


svm_pred_GI <- predict(svm_model_GI, newdata = df.testGI, type="response")
rmse <- sqrt(mean((svm_pred_GI - df.testGI$GSPC.Close)^2))
rmse

我在这里做错了什么?希望有人能帮助我!

Dataset

1 个答案:

答案 0 :(得分:0)

您正在使用模型精度来评估模型。精度用于分类问题,但是您的响应变量是连续的。您应该使用RMSE。

pred <- predict(radial.svm, newdata=df.test, type='response')
rmse <- sqrt(mean((pred - df.test$GSPC.Close)^2))
rmse

评论继续:

enter image description here

第一个绘制GSPC,相对日期关闭(左),第二个绘制SentimentGI相对日期(右)。请注意,股票价格通常会随时间增长,而在同一时间范围内,情绪的斜率为0。这告诉你什么?