机器学习预测股票用什么算法 (机器学习决策树视频教程)

摘要

用于交易的机器学习(Machine Learning for trading)是当今最新的流行词汇,一些科技公司正在利用它做一些难以想象的美妙事情。今天,我们将向你们展示,如何利用最常用的机器学习算法之一“决策树”来预测股票走势(上涨或下跌)。

机器学习中的决策树用于构建分类和回归模型,用于数据挖掘和交易。决策树算法在达到最终结果之前先执行一组递归动作,当您在屏幕上绘制这些动作时,视觉效果看起来像一个大树,因此名为“决策树”。

这是机器学习中简单决策树的示例。

机器学习预测股票用什么算法,机器学习决策树图片

基本上,决策树是一个流程图,可帮助您做出决策。机器学习使用相同的技术来做出更好的决策,让我们找出如何做出决定。

可视化示例数据集和决策树结构

现在,让我们提到,我们想预测您的股票在机器学习中使用决策树的方式将以哪种方式进行。我们将需要该股票的过去数据。如下表所示,请考虑一个样品库存数据集。该数据集包括开放,高,低价,价格和数量指标(OHLCV)。您可以使用Yahoo Finance或Google Finance*载下**任何股票的历史数据。

我们将以R编程语言进行此练习,您必须在Mac/PC上安装支持软件。这是帮助您解决这个问题的链接。这是将这些数据导入到的代码(包括代码在内的数据文件将在博客的末尾可用)。

机器学习预测股票用什么算法,机器学习决策树图片

这是数据的可视化表示。

机器学习预测股票用什么算法,机器学习决策树图片

让我们在此数据集中添加一些技术指标(RSI,SMA,LMA,ADX)。在我们的情况下,使用基本股票值(OHLC)计算技术指标,它们有助于我们预测股票变动。我们的机器学习算法将利用技术指标中的值,以进行更准确的股价预测。我们落后于技术指标值,以避免看起来偏见。

我们还添加了“类”列,该列表示根据股票的近距离价格的每日收益。在“类”列中,“ up”表示正回报,而“下降”表示负面回报。这是相同的代码。

机器学习预测股票用什么算法,机器学习决策树图片

机器学习预测股票用什么算法,机器学习决策树图片

现在是有趣的部分,我们希望使用这些技术指标预测日常变化(上/下)。我们将通过在此数据集上应用机器学习决策树算法来做到这一点。首先,我们将不得不将数据集分为两个部分。培训数据集和测试数据集。该算法使用培训数据来了解股票的运动,并做出某些假设,这也称为“信息增益”。一旦完成培训,我们将其应用于测试数据集以进行股票价格预测。这种机器学习称为监督学习。这是应用这些步骤的代码

机器学习预测股票用什么算法,机器学习决策树图片

训练数据集的结果输出可以以树形结构的形式查看,如下所示。

机器学习预测股票用什么算法,机器学习决策树图片

决策树的示例说明

在了解机器学习决策树算法的工作原理之前,我们先来了解一下决策树的结构。

决策树的组成部分

决策树结构由根节点、测试节点和决策节点(叶子)组成。根节点是决策树中的主节点。在上面的决策树中,我们从 RSI > 50开始,因此使用 RSI 指示符作为根节点。你可能会问,为什么 RSI 指示器的值是50,为什么不说34?这就是训练的意义所在,机器学习决策树算法能够理解50的 RSI 比其他值更有助于做出更准确的决策。

在根节点之后,每个测试节点根据一些设置的条件将数据分成更多的部分。在上面的决策树中,SMA > 80,LMA > 55,ADX > 25(这些值同样是训练的结果)。数据根据这些作为测试节点的指示器进一步分割。

最后一个节点是叶子节点。在决策树图中,包含 Up/Down 类的节点以及表示目标属性概率的概率值是叶节点。任何节点的左边都被认为是“ yes”,这意味着在节点上提出的问题(例如,如果回答是,RSI > 50,则算法导航到树的左边,如果不是,则导航到右边)

因此,整个数据集通过从决策树的根节点向下导航到叶子来根据设置的标准进行分类。

机器学习预测股票用什么算法,机器学习决策树图片

决策树的组成部分

例如,这只股票在某一天的 RSI 值是39,所以如果 SMA 值大于80,那么到树的右边检查,如果是,那么到叶子那里检查,“这只股票下跌的概率是0.52”。

决策树算法是如何工作的?

既然我们已经理解了决策树的结构,那么让我们来理解决策树是如何构造的。

决策树诱导器

决策树由决策树诱导器(也称为分类器)构造。有各种各样的决策树诱导器,如 ID3,C4.5,CART,CHAID,QUEST,CRUISE,等等(你可以在这里和这里找到更多关于这些诱导器的信息)决策树诱导器基本上是一种算法,自动构建一个决策树从给定(训练)数据集。通常,决策树诱导器的目标是根据指定的目标函数构造最优决策树。一个目标函数的例子可以是最小化决策树的节点数,从而降低复杂度。另一个例子是最小化泛化误差(或者得到更精确的结果)。

虽然我们说诱导器自动构造决策树,但实际上,决策树诱导器遵循一定的方法。决策树诱导器通常使用两种流行的方法。这些方法包括广泛使用的自顶向下方法和不太流行的自底向上方法。

解释自顶向下方法

在自顶向下方法下,诱导程序以自顶向下的递归方式创建决策树。让我们使用以前创建的技术指标来理解这种自顶向下的递归方法。

我们创建的技术指标是 RSI、 SMA、 LMA 和 ADX 指标。这些指标被我们的决策树算法认为是属性。

从这些指示符(属性)中,哪个指示符(属性)将被诱导程序用作根节点开始?剩余的属性将如何拆分?

所有这些都是由诱导器使用离散的分裂函数决定的。离散分裂函数使用一定的标准(如信息增益,基尼指数)来确定最佳属性开始和分裂训练数据集。这里有一些链接,以了解更多有关信息增益,基尼指数。

在每次迭代中,诱导算法使用输入属性的离散函数的结果来划分训练数据集。在选择了一个合适的分割之后,每个节点进一步将训练集细分为更小的子集,直到没有进一步的分割可能或者满足停止条件为止。在完成树的创建之后,使用特定的修剪规则对其进行修剪,以减少分类错误。

这就是决策树的构造方法,它可以用于机器学习中的股票价格预测。