当前位置: 首页 > 科技观察

使用机器学习预测股票价格的愚蠢简单方法

时间:2023-03-13 18:48:38 科技观察

在这篇文章中,我展示了一种使用R语言通过机器学习和H2o.ai框架进行股票价格预测的分步方法。该框架也可用于Python,但是,由于我更熟悉R,因此我将使用该语言提供教程。你可能问过自己:如何使用人工智能来预测股票价格?以下是执行此操作的步骤:收集数据导入数据分别清理和处理数据测试和训练观察选择模型训练模型将模型应用于测试数据必要时评估结果增强模型重复步骤5到10,直到您对结果满意为止。在之前的文章中,我展示了如何使用Plotly库绘制高频数据,并解释了如何收集数据进行分析。让我们直接跳到列表中的第3步,如果您想知道如何执行第1步和第2步,请访问之前的出版物。我们的研究问题是:“下一个小时资产的收盘价是多少?”数据清理在使用MetaTrader导入要预测的资产数据后,我们需要更改一些变量。首先,我们定义变量的名称:#settingthenameofvariablescol_names<-c("Date","Open","High","Low","Close","Tick","Volume")colnames(data)<-col_nameshead(data)我们的数据将采用以下形式:>数据—图片来自作者我们将仅使用几个可用变量:开盘价、最高价、最低价、收盘价和成交量。这样,我们就会淘汰别人。data$Date<-NULLdata$Tick<-NULL由于我们想知道下一次观察的收盘价,所以我们需要将下面的值移到上面一行。为此,我们创建一个函数并在原始数据集中使用新数据创建一个变量:#shiftingnrowsupofagivenvariableshift<-function(x,n){c(x[-(seq(n))],rep(NA,n))}data$shifted<-shift(data$Close,1)tail(data)>Data—图片来自作者请注意,我们在上面的第一行中分配了变量Close的值。这样,我们在最后一行有一个NA,我们使用na.omit()函数来省略该行:#removeNAobservationsdata<-na.omit(data)write.csv(data,"data.csv")完美,我们准备好数据开始建模。分割数据在这个问题中,我们将使用一个名为H2O.ai的软件包,它为我们提供了分析和训练人工智能模型的完整解决方案。其用户友好的结构使没有数据科学背景的人也能解决复杂的问题。首先将库加载到我们的环境中:#Installingthepackageinstall.packages("h2o")#loadingthelibrarylibrary(h2o)安装并加载后,我们将启动将用作构建模型基础的虚拟机。在启动虚拟机时,我们必须设置需要的核数和内存参数:#InitializingtheVirtualMachineusingallthethreads(-1)and16gbofmemoryh2o.init(nthreads=-1,max_mem_size="16g")导入数据:h2o.importFile("data.csv")h2o.describe(data)>Dataintoh2o—ImagebyAuthor现在,我们定义要在数据集中预测的变量以及将用于“教导”模型的变量。y<-"shifted"#variablewewanttoforecastx<-setdiff(names(data),y)然后,我们按照训练数据占80%的比例将数据分成训练和测试。parts<-h2o.splitFrame(data,.80)train<-parts[[1]]test<-parts[[2]]拆分数据后,我们继续H2O.ai包的神奇部分。选择模型每个数据科学家在创建机器学习项目时需要执行的任务之一是确定最佳模型或一组模型以进行预测。这需要大量的知识,尤其是扎实的数学基础,才能为特定任务选择最好的。使用H2O.ai包,我们可以要求它为我们选择最好的模型,同时还要处理其他一切。这称为自动建模。显然,这个魔法可能不是解决问题的最有效方法,但它是一个好的开始。训练模型要创建我们的模型,我们调用automl函数并传递必要的参数,如下所示:automodel<-h2o.automl(x,y,train,test,max_runtime_secs=120)几分钟后,我们将获得性能by模型的排序列表。要了解有关它们的更多信息,请致电:automodel@leader>模型描述—图片来自作者应用模型现在我们有了一个领导者,让我们将它应用于我们的测试数据!这是最酷的部分,因为我们将使用模型未观察到的数据评估性能。我们以模型和测试数据作为参数调用预测函数!predictions<-h2o.predict(automodel@leader,test)结论在本文中,我们了解了如何处理和操作资产的财务数据,并轻松创建机器学习模型以在分析数据后一小时内预测收盘价。该模型的评估和优化将在下一篇文章中进行。下周见!