AI股神:如何用机器学习预测股价?

人工智能 机器学习
本文将向你展示如何使用R语言和H2o.ai机器学习框架预测股价。该框架也可以在Python中使用,但因为笔者更熟悉R语言,所以本文就用R语言来演示。

本文转载自公众号“读芯术”(ID:AI_Discovery)。

首先要强调,文中只是简单展示了怎样上手H2o.ai机器学习框架,并不作为投资理财的建议。不要简单根据本文就做出任何投资理财的决策。

[[333548]]

本文将向你展示如何使用R语言和H2o.ai机器学习框架预测股价。该框架也可以在Python中使用,但因为笔者更熟悉R语言,所以本文就用R语言来演示。以下是详细的步骤:

  1. 搜集数据
  2. 导入数据
  3. 整理并操作数据
  4. 分割测试并观察训练
  5. 选择模型
  6. 训练模型
  7. 用模型测试数据
  8. 评估结果
  9. 如有必要便改进模型
  10. 重复步骤5到10,直到对结果满意为止

本文研究的问题是:股票在接下来一小时的收盘价是多少?

数据整理

导入想要通过MetaTrader软件进行预测的资产数据之后,需要更改一些变量。首先,定义变量名称:

  1. #seting the name of variables 
  2. col_names <- c("Date", "Open", "High","Low", "Close", "Tick", "Volume") 
  3. colnames(data) <- col_names 
  4. head(data) 

数据格式如下:

AI股神:如何用机器学习预测股价?

我们仅用到开盘价、最高价、最低价、收盘价和交易量等一些能获得的数据,那么就需要清除其他数据:

  1. data$Date <- NULL 
  2. data$Tick <- NULL 

因为我们想知道下一个观测期的收盘价,所以需要将下面的值移到上一行,需要用新数据在原始数据集中创建函数并设置变量:

  1. #shifting n rows up of a given variable 
  2. shift <- function(x, n) {  
  3.  c(x[-(seq(n))], rep(NA, n)) 
  4. data$shifted <- shift(data$Close, 1) 
  5. tail(data) 

AI股神:如何用机器学习预测股价?

注意,我们已在上一行中给变量收盘价赋了值。所以,在最后一行中会出现NA,我们用na.omit ()函数跳过这一行:

  1. #remove NA observations 
  2. data <- na.omit(data) 
  3. write.csv(data, "data.csv") 

OK,数据已准备就绪,可以开始建模了。

分割数据

[[333549]]

用H2O.ai进行数据分割。H2O.ai为我们分析和训练人工智能模型提供了一套完整的解决方案,非常好用,即便是没有任何数据科学背景的人也能使用它来解决复杂的问题。先下载H2O.ai:

  1. #Installing the package 
  2. install.packages("h2o") 
  3.  
  4. #loading the library 
  5. library(h2o) 

安装加载好后,启动用于建模的虚拟机。启动虚拟机时,必须设置所需的核数和内存参数:

  1. #Initializing the Virtual Machine using all the threads (-1) and 16gb ofmemory 
  2. h2o.init(nthreads = -1, max_mem_size = "16g"

导入数据:

  1. h2o.importFile("data.csv") 
  2. h2o.describe(data) 

AI股神:如何用机器学习预测股价?

接着定义想要在数据集中预测的变量,以及那些用于训练模型的变量:

  1. <- "shifted" #variable we want to forecast 
  2. <- setdiff(names(data), y) 

随后,分割数据,分别用于训练和测试,其中80%用于训练数据。

  1. parts <- h2o.splitFrame(data, .80) 
  2. train <- parts[[1]] 
  3. test <- parts[[2]] 

完成这些步骤,就是时候见证H2O.ai创造奇迹的时候了。

选择模型

每一位数据科学家在创建自己的机器学习项目时,必须完成的一项任务便是识别出最佳的一个或一组模型来进行预测。这需要大量的知识,尤其是深厚的数学基础,来决定针对特定任务的最佳方案。

我们可以借助H2O.ai来选择最佳模型,这样就可以腾出时间解决其他问题,这便是自动建模。虽然这可能不是解决问题最有效的方法,却是一个不错的尝试。

训练模型

创建模型,需要调用automl函数并传递必要的参数:

  1. automodel <- h2o.automl(x, y, train, test, max_runtime_secs = 120

几分钟后,我们就能获取一个按性能顺序排列的模型列表:

AI股神:如何用机器学习预测股价?

运用模型

现在,可以用模型来测试数据啦!你还可以用模型对尚未观察到的数据进行性能评估,以模型和测试数据作为参数调用预测函数:

  1. predictions <- h2o.predict(automodel@leader, test) 

好啦,静待一小时,看看你的预测能否成真吧。

免责声明:本文不是投资建议,预测股票价格并不是一项简单的任务,本文只是简单说明了用H2O.ai解决机器学习问题是多么容易。预测股价走势非常容易,但这并不意味着预测都是正确或准确无误的。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2021-08-21 14:30:58

机器学习bilibili股价

2021-08-23 11:15:20

Python机器学习bilibili

2017-03-24 08:58:23

机器学习算法预测

2020-11-17 17:28:29

机器学习技术人工智能

2020-05-26 18:50:49

机器学习数据预测标签

2020-11-01 23:46:19

AI机器学习农业

2018-03-20 15:33:05

深度学习加密货币

2019-11-28 09:23:17

Python机器学习数据库

2019-04-12 09:28:46

2022-06-09 09:14:31

机器学习PythonJava

2017-05-03 19:08:10

机器学习

2023-03-16 14:47:50

机器学习物流和供应链

2017-09-15 18:13:57

机器学习深度学习语音识别

2020-12-01 10:39:11

人工智能机器学习

2018-05-25 15:10:14

360手机卫士

2020-06-10 07:46:39

机器学习预测性维护工业物联网

2017-07-07 09:21:53

Python 机器学习决策

2020-01-31 16:08:00

​机器学习数据技术

2017-07-25 12:09:10

机器学习预测性维护模型

2018-08-30 14:58:12

机器学习磁盘故障
点赞
收藏

51CTO技术栈公众号