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

     2023-03-12     262

关键词:

【中文标题】在 R 中使用 SVM 进行股票预测 + 新闻情绪?【英文标题】:Stock prediction + news sentiment with SVM in R? 【发布时间】:2019-11-16 03:18:18 【问题描述】:

我想在 R 中与 SVM 一起预测股票价格和新闻情绪得分,以查看新闻是否对股票价格及其预测产生影响。我读到支持向量机(svm)是解决这个问题的一种很好的机器学习方法。我有一栏代表股票和新闻的日期,一栏代表当天的股价,四栏代表基于不同词汇的情绪得分。我想先用其中一个词典进行测试,如果模型有效,再尝试另一个。数据集包括在下面。我找到了一些使用 python 的示例,但找不到 R 的内容。我喜欢使用 e1071 package 中的 svm() 函数

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

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】:

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

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

来自 cmets 的继续:

第一个图 GSPC.Close 与日期(左)和第二个图 SentimentGI 与日期(右)。请注意,股票价格通常会随着时间的推移而上涨,而情绪在同一时间范围内的斜率为 0。这告诉你什么?

【讨论】:

感谢您的回复。我尝试了您的代码,但得到了 1816.42 的 rmse。我将分类列的类更改为数字,以便预测代码起作用。但我猜有些东西出了问题。我更新了我使用的代码以及我使用的数据集,也许你有一个想法。 如果我将我的 SentimentGI.Class 列更改为因子,我可以打印 svm 分类,它似乎工作良好,但预测代码不是工作。收到 "-" not meaningful for factors 的错误 而且我还需要计算准确度,以便了解可以根据财经新闻预测股票价格的百分比。研究人员总是计算该度量值。 现在你正在解决一个不同的问题。你需要决定你的响应变量是什么。例如,在您的新代码中,您将响应变量 SentimentGI.Class 作为分类变量,因此您不会使用用于连续变量的 RMSE。此外,您在计算 RMSE 时将SentimentGI.Classdf.testGI$GSPC.Close 进行比较。最后,你是怎么得到SentimentGI.Class的?如果它来自SentimentGI,那么您的带有SentimentGI.Class ~ . 的模型需要排除此变量。确定您要回答的问题是情绪评分还是股价? 你真的帮了我很多,我真的很感激。我从SentimentGI 得到SentimentGI.Class。我检查了summary function SentimentGI 的中位数是多少,基于此我决定所有values &lt; the median 都是0 和更大的1。但是如果我的想法是错误的,我们可以做不同的事情,我只是这个领域的新手,知道的不多。我想回答这个问题:基于财经新闻的股价预测。所以我想看看当包含新闻文章(基于情绪得分)时,股票预测的准确性有多高。

chatgpt如何做投资?

...股价涨跌。他在近期一篇未经同行评审的论文中表示,在使用ChatGPT来分析新闻头条对一只股票是利好还是利空后,他发现ChatGPT预测次日股票回报方向的能力远好于传统模型。实验是如何进行的?在这项实验中,洛佩兹-里拉及其... 查看详情

如何在 SVM 情绪分析中使用 predict_proba

】如何在SVM情绪分析中使用predict_proba【英文标题】:Howtousepredict_probaatSVMSentimentAnalysis【发布时间】:2020-01-1221:15:25【问题描述】:我将predict_proba应用于分类问题。我有一些在R中构建分类模型的经验,但这是我第一次使用Python... 查看详情

在kaggle的使用新闻预测股票涨跌的ai建模竞赛(2-sigma赞助)

在Kaggle的使用新闻预测股票涨跌的AI建模竞赛(2-Sigma赞助)我们可以使用新闻分析的内容来预测股价表现吗?如今无处不在的数据使投资者能够以任何规模做出更好的投资决策。这个竞赛在于提取和解释数据以确定哪些数据有... 查看详情

在kaggle的使用新闻预测股票涨跌的ai建模竞赛(2-sigma赞助)

在Kaggle的使用新闻预测股票涨跌的AI建模竞赛(2-Sigma赞助)我们可以使用新闻分析的内容来预测股价表现吗?如今无处不在的数据使投资者能够以任何规模做出更好的投资决策。这个竞赛在于提取和解释数据以确定哪些数据有... 查看详情

R中的一类SVM分类

...【发布时间】:2018-02-0808:09:10【问题描述】:我正在尝试使用仅包含一种类的训练数据集编写用于分类的SVM。所以,我想预测某些数据是否与我的数据集不同。我使用与训练相同的数据集进行预测,但不幸的是,SVM的预测效果不... 查看详情

如何在 R 中使用 SVM 进行递归特征消除

】如何在R中使用SVM进行递归特征消除【英文标题】:HowtodorecursivefeatureeliminationwithSVMinR【发布时间】:2019-05-2907:48:06【问题描述】:我有一个看起来像这样的数据集ID885038885039885040885041885042885043885044Class12673592000010012957200000010012957... 查看详情

如何去除 sklearn 线性 SVM 中 10% 最具预测性的特征

...earSVM【发布时间】:2014-10-1619:53:17【问题描述】:我正在使用scikit-learn的(sklearn)线性SVM(LinearSVC),我目前正在尝试删除10%最具预测性的特征,以便对3个类别(正面、负面和中性)进行情绪 查看详情

如何在 Java 中使用 Encog SVM 预测多个值

】如何在Java中使用EncogSVM预测多个值【英文标题】:HowtopredictmultiplevalueswithEncogSVMinJava【发布时间】:2014-07-0415:39:35【问题描述】:很久以前,我一直在使用Encog库开发反向传播神经网络中的预测系统,现在我一直在研究支持向... 查看详情

如何在 R 中构建多类 SVM?

...VMinR?【发布时间】:2016-03-2312:55:43【问题描述】:我正在使用支持向量机进行手写模式识别(字母)项目。我总共有26个类,但我无法在R中使用SVM进行分类。只有当它是二进制类时,我才能对图像进行分类。如何在R中将SVM用于Mu... 查看详情

在 R 中使用插入符号进行交叉验证的 SVM

】在R中使用插入符号进行交叉验证的SVM【英文标题】:SVMwithcrossvalidationinRusingcaret【发布时间】:2013-12-2600:32:15【问题描述】:有人告诉我使用caret包,以便在我拥有的数据集上执行支持向量机回归和10倍交叉验证。我正在根据15... 查看详情

使用lstm-rnn建立股票预测模型(代码片段)

...数据来建立,不考虑消息面对个股的影响。曾有日本学者使用深度学习的方法来对当天的新闻内容进行分析,以判断其对股价正面性/负面性影响,并将其与股票的历史数据相结合,各自赋予一定的权重来对近日的股价进行预测[1... 查看详情

如何使用 SVM 预测多类情感分析问题中的所有类?

】如何使用SVM预测多类情感分析问题中的所有类?【英文标题】:HowtopredictallclassesinamulticlassSentimentAnalysisproblemusingSVM?【发布时间】:2019-12-1511:54:55【问题描述】:好吧,我正在制作一个情绪分析分类器,我有三个类别/标签,正... 查看详情

如何在 R 中使用 multinom() 进行预测

】如何在R中使用multinom()进行预测【英文标题】:Howtopredictwithmultinom()inR【发布时间】:2012-07-2814:18:18【问题描述】:我正在尝试使用特定值计算预测概率,但R显示以下错误:Errorinmodel.frame.default(Terms,newdata,na.action=na.omit,xlev=object... 查看详情

使用 R 进行情绪分析

】使用R进行情绪分析【英文标题】:SentimentanalysisusingR[closed]【发布时间】:2012-05-0106:19:12【问题描述】:是否有任何专注于情绪分析的R包?我有一个小型调查,用户可以在其中写下关于他们使用网络工具的体验的评论。我要求... 查看详情

在 scikit learn 中使用一类 svm 进行二进制分类

】在scikitlearn中使用一类svm进行二进制分类【英文标题】:Binaryclassificationusingoneclasssvminscikitlearn【发布时间】:2018-03-2403:55:07【问题描述】:我正在研究不平衡数据集的二元分类。该数据集包含777个少数类和2223个多数类。我已... 查看详情

使用 libsvm 进行情绪分类

】使用libsvm进行情绪分类【英文标题】:Moodclassificationusinglibsvm【发布时间】:2017-03-0514:00:33【问题描述】:我想在音频数据检测上应用SVM。我正在从语音信号中提取不同的特征。在减少了这个矩阵的维度之后,我仍然得到了一... 查看详情

如何在 R 中使用 pmml 文件进行预测

】如何在R中使用pmml文件进行预测【英文标题】:HowtomakepredictionsusingapmmlfileinR【发布时间】:2016-07-0603:56:06【问题描述】:我使用R中pmml库中的pmml函数创建了一个xml文件。adamodel_iOS=ada(label~.,data=train_iOS,iter=ntrees,verbose=TRUE,loss="ada"... 查看详情

当 classProbs=TRUE 时,在 R 中使用插入符号的 SVM 的不同结果

】当classProbs=TRUE时,在R中使用插入符号的SVM的不同结果【英文标题】:DifferentresultsforSVMusingCaretinRwhenclassProbs=TRUE【发布时间】:2020-12-2404:54:09【问题描述】:当我尝试使用支持向量机(SVM)提取预测概率时,我遇到了以下问题。通... 查看详情