机器学习在量化投资中的应用

编程入门 行业动态 更新时间:2024-10-13 14:22:58

<a href=https://www.elefans.com/category/jswz/34/1771242.html style=机器学习在量化投资中的应用"/>

机器学习在量化投资中的应用

原文:.pdf

(一)监督学习:对未来事件预测

1、回归——预测连续型目标变量

(1)、OLS 回归

OLS 回归的目标是:求误差的最小平方和。对于线性回归模型, 最小二乘法有解析解:

对于非线性回归而言,最小二乘没有解析解,只有迭代解。常用的迭代法有:梯度下降法(可用于线性和非线性模型),高斯-牛顿法(适用于非线性模型),Levenberg-Marquardt 法(结合了梯度下降法和高斯-牛顿法,用于非线性模型)。

(2)、正则化方法——岭回归、LASSO 回归、弹性网络

正则化是通过在模型中加入额外信息来解决过拟合的一种方法,加入的信息称为惩罚项,惩罚项增加了模型的复杂度,但是降低了模型参数的影响。

常用的正则化线性回归方法有:基于 L2 罚项的岭回归、基于 L1 罚项的 LASSO 回归,以及 L1 和 L2 结合的弹性网络

岭回归:在最小二乘的代价函数中加入权重的平方和,其中增加超参 λ 的值可以增加正则化的强度,同时降低了权重对模型的影响。

LASSO 回归:在最小二乘的代价函数中加入权重绝对值的和。

弹性网络:包含 L1 罚项和 L2 罚项。

(3)、回归模型性能评价

残差图:对于一个好的回归模型,期望误差随机分布残差也随机分布于中心线附近

均方误差(MSE):最小化误差平方和(SSE)的均值,可用于不同回归模型的比较, 参数调优和交叉验证。

2、分类——预测分组或标签

(1)logistic 回归

逻辑回归(logistic regression)是一个分类模型。它通过一个 Logistic 函数将输入映射到[0,1]区间,logistic 函数又称 sigmoid 函 数,形式如下:

逻辑回归模型可以看做由两部分组成,一部分和线性回归一样, 另一部分是 sigmoid 函数。直观形式如下图:

逻辑回归模型的求解:归结为以似然函数为目标函数的优化问题,用迭代法求解。

逻辑回归并不是硬性地将分类结果定为 0 或 1, 而是给出了 0 和 1 之间的概率,这相当于对分类结果给出一个打分

例如:我们想选出沪深 300 成分股中上涨概率最大的前 30 只股票, 我们可以用逻辑回归的结果对每一只股票算出一个打分,分数越接近于 1,上涨概率越大;另外也可以规定一个阈值,大于阈值的归为一类,小于阈值的归为另一类。

(2)SVM

SVM(support vector machine),俗称支持向量机,是一种监督学习算法,可用于分类和回归,它在解决小样本、非线性及高维度模式识别中表现出许多特有的优势。

支持向量机分类的原理如下: 假设有两个类别:实心圆和空心圆,我们的数据有两个特征: x 和 y,需要得到一个分类器,给定一对(x,y),输出实心圆和空心圆。我们将已标记的训练数据展示如下:

假设我们要把实心圆和空心圆分成两类。支持向量机会接受这些数据点,并输出一个超平面(二维图中是一条直线)将两类分隔 开。

分类算法还有:决策树、随机森林、K-近邻算法、神经网络和深度学习。

(二)非监督学习:发掘数据的潜在规律

1、聚类——无类标数据潜在挖掘

K-means

k-means 计算高效,易于实现,是一种经典的聚类技术。

它依 据样本之间的相似性对样本进行分组,划分为 k 个类簇,组内的对象之间具有更高的相似度。相似性的度量通常采用欧氏距离的倒数。

初始状态下,随机选取 k 个点作为初始类簇中心;随后将每个样本依据相似度划分到离它最近的中心点,并重新计算每个簇的中 心;重复这一步骤,直到中心点不变或者达到预定的迭代次数为止。

实际中,初始 k 个中心点的选取以及聚类簇数 k 对结果的划分有较大影响。因此除了随机选取初始中心外,我们还有其他两种方 式选取:层次聚类或 canopy 算法进行初始聚类。

2、降维——数据压缩

主成分分析

对不适合正则化的模型,可以用主成分分析或者线性判别分析降维。

主成分分析是一种常用的降维方法,能够在尽可能多地保留相关信息的情况下,把多指标转化为少数几个综合指标。

其基本原理是把数据沿着方差最大的方向映射到维度更低的 子空间上,新特征的坐标相互正交。如果原始数据是 d 维,新的子空间是 k 维(k≤d),那么我们需要构建一个 dxk 维的转换矩阵 W。

构造转换矩阵的基本步骤是:首先对数据标准化,并构造样本的协方差矩阵,求协方差矩阵的特征值和特征向量,选择与前 k 个 最大特征值对应的特征向量构建映射矩阵。

线性判别分析

线性判别分析(linear discriminant analysis,LDA)是一种监督的数据压缩方法。使用 PCA 降维时, PCA 可以把两个特征合并 为一个,但 PCA 没有类别标签,如果这两个特征对于类别标签的分类没有任何影响,那么我们完全可以把这两个特征去除。LDA 就 是要从高维特征中抽取出与类别标签关系最密切的低维特征。 假设我们有两个类别标签,当原始数据是二维,想将二维降到 一维,我们可以把数据投影到最佳向量 w 上,使得类别间的距离最大,每个类别内部点的离散程度最小

(三)强化学习:获得最大化收益

强化学习

强化学习(Reinforcement Learning)是让计算机实现在特定的情况下,通过不断地尝试, 从错误中学习, 最后找到规律, 找到可以获得最 大回报的行为。

强化学习有四个基本组件,包括输入:环境(States), 动作(Actions),回报(Rewards)以及输出:方案(Policy)。

和监督学习不同,强化学习没有确定的标签,需要机器自己摸索,每一个动作 应一个奖赏,最后得到一个奖赏最大的方式进行数据处理。AlphaGo 就是一个强化学习的实例。强化学习的主要算法有:Sarsa,Q Learning, Policy Gradients, Actor-Critic, Deep-Q-Network 等。

强化学习的目标是发现最优策略 (x),使得达到最优价值 Q 。主要有两种途径可以学习最优值函数:

一种是基于模型的学习, 在学习的过程中对模型进行估计, 如实时动态规划(Real-Time Dynamic Programming, RTDP);

另一种是无模型学习, 在学习的过程中直接估计最优行动值。 Q 学习算法是 Watkins 在 1987 年提出的一种无模型强化学习算 法:它用状态 s 下采取行动的下一个状态 s',对假定的行动 s'所对应 的最大 Q '值更新当前的 Q 值。

(四)总结:

机器学习算法主要分为三类:监督学习(Supervised Learning),无监督学习 (Unsupervised Learning)和强化学习(Reinforcement Learning)。

监督学习是使用已知正确答案的示例来训练网络的,

无监督学习适用于你具有数据集但无标签的情况,

强化学习是针对你再次没有标注数据集的情况而言的,但你还是有办法来区分是否越来越接近目标(回报函数(reward function))。

机器学习流程

1、 建模流程

2、 数据处理

数据的质量直接影响了机器学习算法最终学习的效果,数据处理一般包含以下步骤:

缺失数据处理:处理缺失值的两个方法是删除或者填充。删除是直接将 包含缺失值的特征或样本删除。填充是为了避免删除整个特征或样本会损失很多有价值的数据。缺失值的填充可以使用各种插值技术,最常用的是均值 插值、中位数插值等。

类别数据的处理:类别数据有两个类型,标称特征(nominal feature)和 有序特征(ordinal feature)。

对于有序特征,我们可以建立一个映射字典,将类别字符串与整数建立映射。比如:大盘股、中盘股、小盘股分别映射为 1、2、3。

对于标称特征,我们可以将字符串分别映射为不同的整数,比如将价值股定义为 0,周期股定 义为 1,成长股定义为 2,但这样会导致机器学习算法认为这两个特征是有大小顺序的,这样学习的结果不是最优结果。解决这一问题的常用技术是 one-hot encoding 技术。one-hot encoding 是构建一个虚拟特征(dummy feature),用二进制来标识样本类别,利用 one-hot encoding,价值股的虚拟特征为(1,0,0), 周期股的特征为(0,1,0),成长股为(0,0,1)。

数据集的划分:为了保证算法不仅在训练数据集上有效,同时还能很好地应用于新数据,我们通常会随机的将数据集划分为训练数据集和测试数据集。

我们使用训练数据集来训练及优化我们的机器学习模型,用测试数据集对模型进行评估,如果对评估效果满意,那么可以用此模型对新的数据进行预测。为了找出能在实测数据上有更好表现得模型,可以采用交叉验证技术, 将训练数据进一步分为训练子集和验证子集,对模型的泛化能力进行评估。

特征缩放:如果数据尺度相差较大,一般的学习算法将主要根据较大值的误差进行权重优化,为了避免此类错误,需要将不同的特征数据缩放到同一区间。决策树和随机森林是机器学习算法中为数不多的不需要进行特征缩放的算法

3、 模型评估和参数优化 过拟合和欠拟合

若模型的训练准确率和验证准确率之间有很大的差距,说明模型过拟合, 是一个高方差模型

若模型的训练准确率和验证准确率都很低,说明模型欠拟合,是一个高偏差模型

对于欠拟合,通常做法有:增加参数数量,构建额外特征、降低模型的 正则化程度;

对于过拟合模型,通常做法有:增加训练极样本数、降低模型 复杂度、特征提取、降维。降低模型复杂度可以通过增加正则化参数实现, 增加训练集样本数不适用于数据中噪声过多的情况。

交叉验证

为了使模型在欠拟合和过拟合之间找到最优平衡点,我们可以使用 holdout 交叉验证或者 k 折交叉验证优化模型的泛化能力。

Holdout 交叉验证是将模型划分为三部分:训练数据集、验证数据集和测试数据集。验证集用于评估模型的性能。

k 折交叉验证使用无重复抽样技术,在 k 个训练数据子集上重复 holdout 方法 k 次。不重复地随机将训练数据集划分为 k 个,其中 k-1 个用于模型训 练,剩余 1 个用于测试,重复此过程 k 次,通常 k 取为 10,相较于 holdout 方法具有更好的鲁棒性。

图:.pdf

性能评价指标

我们可以用一个混淆矩阵展示学习算法预测结果,并通过混淆矩阵构建 模型的性能评价指标。

4、 预测 在使用训练数据集勾出一个模型后,可以采用测试数据集对模型进行测 试,预测该模型在未知数据上的表现并对模型的泛化误差进行评估。若我们 对模型的评估结果表示满意,就可以使用此模型对以后新的未知数据进行预 测。 5、 集成学习 我们可以将不同的分类器组合,成为一个元分类器,使得元分类器的整 体性能优于其中任意一个单独分类器。集成学习就如同把 N 位专家的预测进 行组合,比单独一个的预测具有更好的鲁棒性和准确性。有两种常见的集成 学习框架:并行方法 bagging,串行方法 boosting。 Bagging 将训练数据进行 N 次又放回的随机抽样得到 N 个训练数据子集,对每个 子集使用相同的算法分别建立决策,最终的分类(或者回归)结果是 N 个决 策结果的多数投票(或平均)。

Boosting 基本思想是先赋予每个训练样本相同的权重,然后进行 T 次迭代,每次 迭代后,对分类错误的样本加大权重(重采样),使得在下一次的迭代中更加 关注这些样本。如此重复进行,直到弱学习器数达到事先指定的数目 T,最 终这 T 个弱学习器通过集合策略进行整合,得到最终的强学习器。

图:.pdf

更多推荐

机器学习在量化投资中的应用

本文发布于:2024-03-07 01:26:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1716484.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机器

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!