

机器学习具有许多优势。 现在是热门话题。 对于交易员或基金经理来说,相关的问题是“我如何应用这个新工具来产生更多的阿尔法?”。 我将在一系列博客中探索一个可以回答这个问题的模型。
该博客分为以下几个部分:
- 获取数据并使其可用。
- 创建超参数。
- 将数据分为测试集和训练集。
- 获取最适合的参数以创建新功能。
- 进行预测并检查性能。
- 最后,值得深思。
您可以添加一行以安装软件包“ pip install numpy pandas…”。
您可以使用以下代码在Anaconda Prompt中安装必要的软件包。
- 点安装熊猫
- pip安装pandas-datareader
- pip安装numpy
- 点安装sklearn
- pip安装matplotlib
在进一步介绍之前,让我说一下这段代码是用Python 2.7编写的。 因此,让我们开始吧。
问题陈述:让我们首先了解我们的目标。 在本博客的最后,我将向您展示如何创建一种算法,该算法可以根据以前的OHLC(开盘,高点,低点,收盘价)数据预测一天的收盘价。 我还想监视预测误差以及输入数据的大小。
让我们导入构建此机器学习算法所需的所有库和包。


获取数据并使其可用
要创建任何算法,我们需要数据来训练算法,然后对新的看不见的数据进行预测。 在此博客中,我们将从Yahoo获取数据。 为此,我们将使用熊猫库中的数据读取器功能。 此功能得到广泛使用,它使您能够从许多在线数据源中获取数据。


我们正在获取与S&P 500关联的SPDR ETF的数据。该股票可以用作S&P 500指数表现的代理。 我们指定从哪一年开始提取数据。 数据输入后,我们将丢弃OHLC以外的任何数据(例如交易量和调整后的收盘价),以创建数据帧“ df”。
现在,我们需要根据过去的数据做出预测。 因此,让我们在数据框中创建新列,其中包含滞后一天的数据。


请注意,在新列的名称中将大写字母删除为小写字母。
创建超参数
尽管超参数的概念本身值得一个博客,但现在我只想谈一谈。 这些是机器学习算法无法学习但需要迭代的参数。 我们使用它们来查看哪些预定义函数或参数产生最佳拟合函数。


在此示例中,我使用了Lasso回归,该回归使用L1类型的正则化。 使用功能选择时,这种类型的正则化非常有用。 它能够将系数值减小为零。
如代码中指定的那样,imputer函数将用平均值替换可能影响我们预测的所有NaN值。 “步骤”是一堆功能,这些功能被整合为管道功能的一部分。 管道是一种非常有效的工具,可以对数据集执行多种操作。
在这里,我们还传递了Lasso函数参数以及可以迭代的值列表。 尽管我没有详细介绍这些参数的确切功能,但是它们值得深入研究。
最后,我调用了随机搜索函数来执行交叉验证。
(阅读更多)