机器学习白皮书系列之四:机器学习流程和算法介绍及金融领域应用实例-20180207-长江证券-32页.pdf
请阅读最后评级说明和重要声明 1 / 32 [Table_MainInfo] ┃ 研究报告 ┃ 机器学习 2018-2-7 机器学习白皮书系列之四:机器学习 流程和算法介绍及金融领域应用实例 金融工程┃专题 报告 报告要点 机器学习问题和其流程 机器学习问题本质上在于找出使得经验风险泛函(样本误差)最小的建模流程, 基本的流程可以分为特征工程、模型训练和模型融合。本篇就上述三个过程,给 出相关算法的介绍,并补充了之前系列报告中未详细介绍的内容。 机器学习三大步骤 特征工程包含特征构建、特征提取和特征选择三个过程,以选择相对最优的特 征空间。特征工程往往会采用无监督和有监督的机器学习算法 。 机器学习模型 可以分为线性模型、树模型和深度学习模型。线性模型主要体现了数据中的线 性关系,如输入与输出的线性关系,点集的线性可分;树模型可以很好的捕捉输 入与输出的非线性关系 ,和线性模型相辅相成。一些改进的随机梯度下降法可 以很好地训练深度学习模型。模型融合有横向拼接和纵向拼接两种方式,在模 型融合过程中,往往要求模型表现好,且之间的相关性小。深度学习可以将模型 融合通过网络结构的设计在模型训练中完成。 多因子选股案例 目前多因子选股模型多以单个模型在整个特征空间上的预测构建策略,往往很 难保证函数空间上的一致性,而机器学习流程选股通过在大的函数空间中选择 多个小的函数空间进行合并,得到更为完善的模型,可以在估计函数空间上更 加逼近实际函数空间。本文以提升树模型、 ExtraTrees 模型和 深度神经网络模 型进行横向拼接,加权平均模型输出的伪概率,构建投资组合。融合模型超额年 化收益为 25.91%,夏普比为 1.06,信息比为 2.26,月度超额胜率为 0.76,在 超额收益、夏普比、信息比及月度超额胜率上 表现略优于单个模型,且在分组投 资组合的区分上更 为 明显 。 [Table_Author]分析师 覃川桃 (8621)61118766 qinct@cjsc.com.cn 执业证书编号: S0490513030001 联系人 郑起 (8621)61118706 zhengqi2@cjsc.com 联系人 杨靖凤 (8621)61118736 yangjf@cjsc.com.cn 分析师 [Table_Doc]相关研究 《机器学习白皮书系列之三:深度学习的方法介 绍及金融领域应用实例》 2018-1-22 《红利策略:展望 2018》2018- 1-14 《鹏华基金指数型产品的投资价值分析》 2018-1- 2 风险提示: 1. 模型在使用中存在建模风险; 2. 本文举例均是基于历史数据不保证其未来收益 。 请阅读最后评级说明和重要声明 2 / 32 金融工程丨专题 报告 目录 机器学习流程介绍 4 机器学习问题 4 “方差”与“偏差” . 4 机器学习三大步骤 . 5 特征工程 . 5 特征构建 . 6 特征提取 . 6 主成分分析 6 独立成分分析 7 限制波尔兹曼机 . 7 特征选择 . 7 过滤式 . 8 封装式 . 8 嵌入式 . 8 深度学习的特征工程 . 9 模型训练 . 9 线性模型 . 9 广义线性回归模型 . 9 支持向量机 10 线性模型比较 12 树模型 . 13 决策树模型 13 集成学习算法 14 Bagging 与随机森林模型 . 14 Boosting 与提升树模型 15 树模型比较 18 深度学习模型 18 最优化算法 18 训练模型参数 20 交叉验证 . 21 模型融合 . 21 请阅读最后评级说明和重要声明 3 / 32 金融工程丨专题 报告 复杂的模型融合 . 22 深度学习的模型融合 . 23 多因子选股案例 24 建模流程 . 25 数据与特征工程 . 25 模型与回测相关 . 27 相关结果 . 27 总结 30 图表目录 图 1:“方差”与“偏差”制衡 5 图 2:机器学习流程 5 图 3:支持向量机运作示意图 10 图 4:噪音对支持向量机的影响 11 图 5:支持向量机惩罚项对拟合效果影响 11 图 6:决策树预测流程 . 13 图 7: Blending 流程图 22 图 8: Stacking 流程图 23 图 9:模型融合网络图 . 24 图 10:融合模型分组表现 . 28 图 11:各个模型第一组表现 29 图 12:各个模型超额收益 . 29 图 13:各个模型多空表现 . 30 表 1:常用特征构建过程 . 6 表 2:常用特征组合过程 . 6 表 3:特征选择方法比较 . 8 表 4:线性模型比较 12 表 5:树模型比较 18 表 6:简单的模型融合 . 22 表 7:因子列表 . 26 表 8:模型 f1score/模型融合权重 . 27 表 9:融合模型分组表现 . 28 表 10:融合模型第一组分年表现 28 表 11:模型分组指标比较 . 29 表 12:模型风险评价指标 . 30 请阅读最后评级说明和重要声明 4 / 32 金融工程丨专题 报告 机器学习流程介绍 在之前的报告中,我们介绍了一些常用的传统机器学习算法和深度学习算法,本文将对 机器学习在特定场景中应用的建模流程,给出相关介绍。 机器学习问题 机器学习问题可以抽象为一个寻找当前数据集分布的问题,具体来看,给定训练样本 𝐷 = {(𝑥1,𝑦1),(𝑥2,𝑦2),,(𝑥𝑛,𝑦𝑛)}(训练样本是根据联合分布 𝐹(𝑥,𝑦) = 𝐹(𝑥)𝐹(𝑦|𝑥)抽取的 𝑛个 独立同分布的观测),机器学习问题就是从给定的函数空间 𝑓(𝑥,𝜆),𝜆 ∈ 𝛺中找出最优的逼 近函数,以达到预测 𝑦的目的,其中 𝛺为参数空间。 对于一个 函数逼近问题,一般会使用损失函数 𝐿(𝑦,𝑓(𝑥,𝜆))来衡量在寻找逼近函数中存在 的误差,其期望也被称作风险泛函: 𝑅(𝜆) = ∫𝐿(𝑦,𝑓(𝑥,𝜆))𝑑𝐹(𝑥,𝑦),𝜆 ∈ 𝛺 函数逼近中最优化损失函数本质上是在已有的样本空间上,使得估计函数有最小化风险 泛函。由于联合分布 𝐹(𝑥,𝑦)未知,风险泛函并不可求,但是可以利用算数平均来近似代 替风险泛函,从而得到了经验风险泛函,也即样本误差: 𝑅𝑒𝑥𝑝(𝐷,𝜆) = 1𝑛∑𝐿(𝑦𝑖,𝑓(𝑥𝑖,𝜆)) 𝑛 𝑖=1 其中 𝐷为样本空间。所 以机器学习问题就变成了如何在当前样本下得到最优的样本误差。 由上式可以看出,样本误差是一个关于样本和参数的函数,在样本一定的情况下,函数 就变成了一个参数空间到样本误差空间的函数,这个参数空间可以是狭义上的机器学习 模型的超参数,广义上来说,是建模流程中的每个步骤,如在特征工程中采用的特征选 择算法、降维算法,特征子空间,模型训练过程中选择的模型簇,模型的超参数,模型 融合的方式等等。所以 机器学习本质上是找出使得经验风险泛函最小的建模流程。 “方差”与“偏差” 机器学习中的样本误差,以平方误差为例,可以对其进行分解: 𝐸𝑟𝑟(𝒙) = 𝐸𝐷 [(𝑓(𝒙;𝐷)−𝑓̅(𝒙))2]+(𝑓̅(𝒙)−𝑦)2 +𝐸𝐷[(𝑦𝐷 −𝑦)2] = 𝑣𝑎𝑟𝑖𝑎𝑛𝑐𝑒 +𝑏𝑖𝑎𝑠2 +𝑛𝑜𝑖𝑠𝑒 其中 𝑓(𝒙;𝐷)是训练集 𝐷下得到的模型, 𝑓̅(𝒙)是模型的期望预测, 𝑦是真实值, 𝑦𝐷为观测 值。 直观上来说,“方差”反映的是模型每次输出结果和模型输出期望之间的误差,即模型在 不同数据集上表现的稳定性,一般模型复杂度越低“方差”越小;“偏差”反映的是模型 在样本上的输出与真实值之间的误差,即所用模型和真实模型的误差,一般模型复杂度 越高“偏差”越小。为了使得我们建立的模型在做预测的时候误差尽可能小,我们需要 减小“方差”和“偏差”。但是两者之间存在一个制衡,一般情况下不能同时减小,如下 图: 请阅读最后评级说明和重要声明 5 / 32 金融工程丨专题 报告 图 1: “方差”与“偏差”制衡 资料来源:长江证券 研究所 如果训练不足,学习器未能很好的逼近真实情况,“偏差”较大,同时因为学习器能力不 强,导致数据集的扰动无法使学习器表现产生变化,“方差”较小,即 欠拟合情况 。 如果充分训练,学习器可以很好的逼近当前情况,“偏差”较小,但是数据集的轻微扰动 都会对学习器表现造成较大影响,“方差”较大,即 过拟合情况 。 机器学习中的很多流程都是为了寻找使得“偏差”和“方差”相对平衡的点,保证整体 的误差最小。 机器学习三大步骤 一般来说,机器学习有三个要素:数据、算法和模型。数据是场景的描述,包括输入和 输出。算法是得到模型的过程,狭义上说 ,特指机器学习算法,如传统线性回归、树和 支持向量机以及深度学习;广义上说,从最初得到数据到最终确定模型中间的所有过程, 即建模流程都可以看作算法,如分类、回归模型,搜索最优参数算法。模型是输入到输 出的映射,即我们最后需要得到的特定法则,对场景给出相关预测。对应这三个要素, 机器学习又可以分为三个步骤:特征工程、模型训练和模型融合,如下图所示: 图 2: 机器学习流程 资料来源:长江证券 研究所 通过特征工程,确定需要预测的 数据 ,如回归值或分类标签,以及体现分析问题的特征; 经过特征处理的数据使用特定 算法 ,得到 部分模型 ;得到的部分模型使用特定 算法 进行 融合,得到 整体模型 。 特征工程 在很长一段时间内,特征工程都是机器学习的核心部分。机器学习中有一句非常有名的 话“ garbage in, garbage out”,数据和特征往往决定了机器学习的上限,而模型和算法 算法 特征工程 数据 模型 模型融合 模型训练 请阅读最后评级说明和重要声明 6 / 32 金融工程丨专题 报告 只是逼近这个上限,所以很多数据科学家在建模过程中,对特征的处理可能会花费整个 建模 80%的时间,直到深度学习的兴起,从某种意义上很大程度的解放了数据科学家在 这一过程中的工作量,但是特 征工程仍然重要。 特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征 的过程。简单来说,特征工程就是人为的设计可以输入的变量,如多因子模型中的因子。 特征工程包含三个过程 —— 特征构建、特征提取、特征选择,三个过程不是独立存在的, 结果往往需要不断迭代,和模型训练、模型融合过程结合,得到相对最优的特征。 特征构建 特征构建就是把已有的数据转换为特征,这种特征可以直接作为输入训练模型,下表展 示了一些常用的特征构建过程: 表 1: 常用特征构建过程 数据类型 转化 算法 应用场景举例 文本数据 向量 分词、 word2vec 情感分析中的文本处理 图像数据 矩阵 模糊、卷积、池化 图像识别中的图像处理 日期数据 整数 年月日的提取 周期性分析 地理位置 距离 欧氏距离的转化、坐标的表示 房价预测中的地理位置表示 类别变量 向量 哑变量处理 多因子选股中的行业表示 噪音数据 向量 去噪处理 时间序列中的小波变换 资料来源:长江证券 研究所 特征提取 特征提取很是像特征构建的“升级”,通过“低阶”特征之间的组合、变换,从中找出有 效的、可以体现问题分析特点的“高阶”特征。一般来说,会对截面上的特征进行加法、 减法、乘法、除法、平方、立方、取对数等处理,也会对有时间序列性质的特征进行取 平均值、最大值处理,这里列举一些多因子模型中常用的组合特征及逻辑: 表 2: 常用特征组合过程 因子名称 因子描述 算法 逻辑 EP 净利润 /总市值 除法 公司估值 Capital 价格×总股本 乘法 公司规模 Ln_price 价格对数 取对数 平滑价格影响 MA 价格移动平均 取平均数 光滑处理价格 Std_Nm 波动率 取标准差 体现收益率波动 Beta 与 上 证 综 指 回 归 的 Beta 回归系数 个股的 Beta 资料来源:长江证券 研究所 特征提取也会采用一些无监督的方法,以达到降低特征维度,提取主要特征的作用,主 要的算法有:主成分分析、独立成分分析、限制波尔兹曼机。 主成分分析 主成分分析( Principal Component Analysis, PCA)可以对高维数据进行降维,去除数 据噪声,保留数据中的主要模式。 PCA 以最大化样本方差为标准,对原始特征进行线性 请阅读最后评级说明和重要声明 7 / 32 金融工程丨专题 报告 组合得到新的特征,并通过提取样本方差贡献较大的组合特征,达到降维效果。对于一 个 𝑛维样本数据,若需要将维度降到 𝑘维,首先得到其协方差矩阵及其对应的特征值、特 征向量: 𝐶 = ( 𝑐𝑜𝑣(𝑥1,𝑥1) ⋯ 𝑐𝑜𝑣(𝑥1,𝑥𝑛) ⋮ ⋱ ⋮ 𝑐𝑜𝑣(𝑥𝑛,𝑥1) ⋯ 𝑐𝑜𝑣(𝑥𝑛,𝑥𝑛) ) 𝐶𝑋 = 𝜆𝑋 将特征向量对应特征值大小从上到下排列成矩阵,取前 𝑘行组成矩阵 𝑃,得到新的特征: 𝑌 = 𝑃𝑋 独立成分分析 独立成分分析最经典的应用之一为盲源分析,将混合的信号分离成潜在的信息成分。独 立成 分分析为了保证分解的解,一般要求原数据为非正态分布,但是一些分析方法可以 通过某种“非高斯性”的度量最大化实现分解,如比较常用的四阶矩,通过迭代的方式, 找出在每个样本空间内四阶矩最大的分解权重,得到分解矩阵。 独立成分分析很多时候更像是主成分分析的一个补充,主成分分析在数据为正态分布的 假设下有着很好的效果,当数据不服从正态分布时,独立成分分析就可以作为另一种降 维手段对特征进行提取。 限制波尔兹曼机 限制波尔兹曼机由两层网络结构组成:输入层和隐含层, 其中 隐含 层可以像深度神经网 络一样,由多个 隐含 层组成。 限制波尔兹曼机可以分为两个过程,第一个过程为正向传 播过程,通过现有数据的输入,得到经过隐含层处理的值;第二个阶段为反向传播过程, 也可以称为重构阶段,隐含 层的激活值成为反向传递中的输入,这些输入值与 之前正向 传播用 同样的权重相乘,得到的结果再与每个可见层的偏差相加,就得到了重构值,也 即原始输入的近似值 。 通过不断的修正偏差值,来得到最终稳定的模型 。 在正向传递的过程中, 限制波尔兹曼机 用输入值来预测节点的激活值,输出的是一个概 率,即 𝑝(𝑎|𝑥;𝑤);在反向传递时,激活值成为输入,输出对于原始数据的重构值,即 概 率 𝑝(𝑥|𝑎;𝑤);通过上述两种预测值的结合,就可以得到输入 𝑥和激活 𝑎的联合概率分布, 即 𝑝(𝑥,𝑎)。最终 限制波尔兹曼机 期望达到的结果是估计原始数据的近似值,即输入数据 的一种重构。 特征选择 特征选择的目的是寻找最优特征子空间,剔除不相关或冗余特征,从而达到减少特征个 数,提高模型精度的目的。特征选择一般分为三个过程: 1. 特征子空间的确定:一般将特征构建和提取得到的集合作为特征全集,不断从全集 中寻找子集,作为当前特征选择的搜索范围; 2. 选择算法:选择算法一般可分为两个部分。一是评价函数,通过评价函数来评价当 前特征子空间的表现,二是筛选准则,当评价函数达到某个阈值后就得到了相对满 意的特征集合; 3. 验证过程:在验证集上评价特征子空间的有效性。 请阅读最后评级说明和重要声明 8 / 32 金融工程丨专题 报告 特征选择算法中的相关的算法又可以分为三个大类。 过滤式 过滤式特征选择的评价标准从数据集本身的内在性质获得,与特定的学习算法无关,因 此具有较好的普适性,也是目前特征选择过程中都会做的一步。通常会选择和目标之间 相关性高或信息增益大的变量加入到之后的模型中。 过滤式算法的优点是显而易见的,即适用性强、算法复杂 度低,可以高效的筛选掉大量 不相关的特征,缺点是由于算法的简单导致选择的特征并非最优。针对分类和回归两个 不同问题,有不同的评价函数,分类一般采用卡方检验、 f 值和信息熵,回归一般采用 皮尔森相关系数、 f 值。 实际上,正是由于过滤式算法的高速度低精确性,往往只将其结果作为特征筛选的辅助 手段,一般会采用可视化形式展示每个特征和目标之间的相关性,对集合内的特征有一 个大概的了解,而不将其结果作为最终的选择。 封装式 封装式方法通过不断搜索特征子空间上模型的表现,确定最优的特征子空间,常用的算 法有向前搜索法、向后搜索法。封 装式方法在选择特征的过程中实际上已经用到了之后 可能会用到的模型,这些模型可以是决策树、神经网络、贝叶斯分类器、近邻法以及支 持向量机等等,即有监督的机器学习模型都可以作为封装式算法的基模型。 相比于过滤式方法,封装式方法找到的特征子空间性能通常更好,但是封装式方法选出 的特征通用性不强,当基模型改变时,选择的特征往往也会产生变化,且由于每次评价 特征子空间都要进行模型的训练,计算复杂度高,时间上不够高效。所以封装式方法往 往只会采用一些简单的模型初步选择一遍特征,作为最后的特征子空间。 嵌入式 嵌入式特征选择中,特 征选择算法本身作为模型训练的一部分嵌入到学习算法里,如最 典型的 Lasso 回归,在回归的过程中,筛选出主要变量,降低特征空间的维数;再如树 模型,根据剪枝或是一定的限制,选择出较小的特征空间。 但是由于嵌入式特征选择输入的特征信息表现较为普通,模型的表现往往一般,并不能 直接使用,所以这一过程多用来有目标的选择特征空间。如利用 Lasso 回归筛选变量, 供线性回归所用。 上述三种方法的相关比较如下表: 表 3: 特征选择方法比较 方法 评价函数 优点 缺点 用途 筛选式 相关系数、信息熵、 基尼指数、卡方检验 等 耗时少,适用性 强 精确度低,倾向于冗余特征, 未考虑变量之间的相互影响 快 速找 出输 入 和输 出之 间的关系 封装式 在子空间上的 交叉 验证模型表现 考虑到特征之间 的相互影响 搜索算法耗时较长 筛 选主 要特 征子空间 嵌入式 模型表现 较为准确 较为依赖模型 选 择特 定特 征空间 资料来源:长江证券 研究所 请阅读最后评级说明和重要声明 9 / 32 金融工程丨专题 报告 深度学习的特征工程 相比于传统机器学习模型,深度学习的一个巨大的优势在于有着较为有效的特征提取过 程(具体讨论见《机器学习白皮书系列之三:深度学习的方法介绍及金融领域应用实例》 的“为什么要用深度学习”一节),在特征提取之后,得到的特征可以直接输入模型进行 训练。这一优势集中体现在两点上: 1. 可以有效处理非结构数据,如卷积神经网络处理图像数据; 2. 对于一阶特征,不需要人为构造,一定层数的神经网络都可以通过非线性激活函数 逼近最佳函数。 但是深度学习的特征过程并不是万能的,简单的特征输入会有两点较为明显的局限性: 1. 在低阶特征上表现好,但是如 果输入的特征涉及高阶特征,或是一些离散、稀疏的 特征,特征提取效果会变差,且在训练过程中还会出现不收敛问题。针对这一点, 需要人为去做一些简单的特征处理; 2. 特征往往不具有相同的阈值,当特征之间的阈值相差较大时,在优化参数的训练过 程中也会使得收敛速度不一致,影响训练效率。针对这一点,可以通过归一化、标 准化过程处理解决。 模型训练 机器学习模型可以简单分为传统机器学习模型和深度学习模型,传统的机器学习又可以 根据模型的表达式分为树模型和线性模型,本节就常用的模型给出相关的介绍,并给出 参数优化和超参数选取方面的相关细节 。 线性模型 线性模型一定程度上都可以表达为特征之间的线性组合与目标之间的关系,常用的线性 模型有:广义线性回归模型(包括普通线性回归、 Lasso 回归、 Ridge 回归、逻辑回归、 弹性网络回归)和支持向量机。 广义线性回归模型 广义线性回归模型基于指数分布族: 𝑃(𝑦;𝜂) = 𝑏(𝑦) ∙𝑒𝑥𝑝(𝜂𝑇𝑇(𝑦)−𝑎(𝜂)) 其中 𝜂为自然参数, 𝑇(𝑦)为充分统计量。通常来说 𝑇(𝑦) = 𝑦。 从广义线性回归模型的角度来看,普通线性模型是当 𝑦服从正态分布的情形;逻辑回归 是当 𝑦服从伯努利分布的情形; Lasso 回归是 𝑦服从正态分布,且系数服从拉普拉斯分布 的情形; Ridge 回归是 𝑦服从正态分布,且系数服从正态分布的情形。 在《机器学习白皮书系列一:监督学习的方法介绍及金融领域应用实例》中我们介绍了 普通线性回归、 Lasso 回归、 Ridge 回归和弹性网络回归。 逻辑回归主要解决的任务是分类,通过 Sigmoid 函数,将实数范围内所有值映射到 0、 1 之间,做从数值到标签的映射,以此建立回归任务,解决二分类问题。 Sigmoid 函数 的表达式和回归问题如下: 请阅读最后评级说明和重要声明 10 / 32 金融工程丨专题 报告 𝑓(𝑥) = 1(1+𝑒−𝑥) 𝑃(𝑦 = 1|𝒙;𝜽) = 1(1+𝑒−𝜽𝑻𝒙) ⟺ ln( 𝑃(𝑦 = 1|𝒙;𝜽)1−𝑃(𝑦 = 1|𝒙;𝜽)) = 𝜽𝑇𝒙 逻辑回归可以很快速的对分类问题进行建模,对连续性和类别型变量都适用,目前已经 广泛的应用于工业界的很多问题。逻辑回归存在着线性回归都有的问题,如对特征中的 多重共线性较为敏感,但可以通过特征提取、增加惩罚项等方法来解决这些问题。逻辑 回归的主要问题在于当数据维度很大的时候,表现效果一般,同时由于预测结果呈现“ S” 型,中间区间的概率变化较大,很难确定一个较为合理的阈值。 支持向量机 支持向量机起源 于线性超平面对当前平面的划分,所以最开始被用来解决分类问题。 对于一个简单的二分类问题,平面上两种不同颜色的点,可以通过一个超平面(直线) 将两个颜色的点分开: 图 3: 支持向量机运作示意图 资料来源: An Introduction to Statistical Learning, 长江证券 研究所 分类函数可以写成超平面表达式: 𝑓(𝑥) = 𝒘𝑇𝒙+𝒃 = 0 空间中存在很多超平面可以划分两种颜色的点,这些超平面根据法向量可以分成一个个 平面簇,如上图中即对应了多个不同的平面簇,每个簇中可以使得两个点集刚好被分开 的两个超平面之间的几何距离,称为 gap,表示两个点集之间的距离,而落在这两个超 平面上的点,被称为 支持向量 。最优的参数( 𝒘和 𝒃)就是使得 gap 值最大的超平面 。为 了方便求解 𝒘和 𝒃,限定支持向量满足 𝒘𝑻𝒙+𝒃 = ±1。可以证明最优化的目标为: min12‖𝒘‖2,𝑠.𝑡.𝑦𝑖(𝒘𝑻𝑥𝑖 +𝒃) ≥ 1,𝑖 = 1,…,𝑛 上述情况讨论了点集可以被超平面完全分开的情况,但由于噪声的存在,绝大多数的情 况下点集很难被一个超平面分开,还有些情况因为噪声的存在使得整个模型受到影响, 如图: 请阅读最后评级说明和重要声明 11 / 32 金融工程丨专题 报告 图 4: 噪音对支持向量机的影响 资料来源: An Introduction to Statistical Learning, 长江证券 研究所 上图由于异常蓝色点的存在,使得原本较优的超平面产生了偏离。为了对应这种情况, 支持向量机允许数据点在一定程度上偏离超平面。原约束条件 𝑦𝑖(𝒘𝑻𝑥𝑖 +𝒃) ≥ 1表明了 所有点都是可以被超平面所分的,现在将约束条件变为 𝑦𝑖(𝒘𝑻𝑥𝑖 +𝒃) ≥ 1− 𝜉𝑖,表明允许 一些数据点不被超平面所分,同时目标函数变为: min12‖𝒘‖2 +𝐶∑𝜉𝑖 𝑁 𝑖=1 C 为惩罚系数,是支持向量机的超参,值越大表明对分类错误的容忍度越低,模型方差 越大,值越小表明对分类错误容忍度越高,模型方差越小。 图 5: 支持向量机惩罚项对拟合效果影响 资料来源:长江证券 研究所 普通的支持向量机可以处理线性可分的情况,而对于线性不可分的情况,需要通过函数, 将数据映射到高维空间,在高维空间中处理线性可分的情况。理论上,任何样本都可以 通过函数变换做到线性可分。函数对原数据集的处理可以表示为 𝝓(𝒙),超平面变为 𝑓(𝒙) = ∑ 𝑤𝑖𝜙𝑖(𝒙)+𝒃𝑁𝑖=1 。经过变化的问题可以通过核函数的技术进行求解。核函数用 来表示两个函数在特征空间的内积: 𝑲(𝒙,𝒛) = 〈𝝓(𝒙)∙𝝓(𝒛)〉, 这里不具体展开介绍。常 用的核函数有: 请阅读最后评级说明和重要声明 12 / 32 金融工程丨专题 报告 线性核 : 𝐾(𝒙,𝒛) = 〈𝒙,𝒛〉 = 𝒙𝑇𝒛。线性核主要用于样本空 间线性可分的情形,有着参数少 速度快的优势。 多项式核 : 𝐾(𝒙,𝒛) = (𝛾〈𝒙,𝒛〉 +1)𝑑 = (𝛾𝒙𝑇𝒛+1)𝑑。多项式核属于全局核函数,维数越 大,映射空间越高,对样本的区分越明显,学习复杂度越高,计算量越大,也越容易过 拟合。 Sigmoid 核 : 𝐾(𝒙,𝒛) = 𝑡𝑎𝑛ℎ(𝛾〈𝒙,𝒛〉+1) = 𝑡𝑎𝑛ℎ(𝛾𝒙𝑇𝒛+1)。当模型采用 Sigmoid 函数 作为核函数时,支持向量机本质上实现的是多层感知器神经网络。 高斯核 : 𝐾(𝒙,𝒛) = 𝑒𝑥𝑝(−𝛾‖𝒙−𝒛‖22𝜎2 ),高斯核可以将原始空间映射为无穷维, 𝜎越大,高次 特征权重越小,近似于低维空间, σ越小,实际空间维数越高,也越容易过拟合。 支持向量机回归在本质上类似分类的做法,通过一个“边界”对数据集给出划分,这个 边界即为回归曲线,区别在于分类认为边界内的点是错误分类,从而进行惩罚,而回归 认为在边界内的点是噪音,对回归没有影响,不对这些数据进行惩罚。支持向量机回归 的形式类似 Ridge 回归, Ridge 回归是带有 L2 范数惩罚项的、以均方误差为基础的回 归,支持向量机回归将均方误差替换为了 hinge loss(铰链损失),其表达 形式如下: argmin𝐿(𝒘,𝒃) = 𝐶∑max(0,1−𝑦𝑖(𝒘𝑻𝝓(𝑥𝑖)+𝒃)) 𝑛 𝑖 +12∑𝑤𝑗2 𝑑 𝑗 = max(0,1−𝒚(𝒘𝑻𝝓(𝒙)+𝒃))+𝜆‖𝒘‖22 线性模型比较 线性模型的相关比较如下表所示: 表 4: 线性模型比较 应用场景 常见超参数及调整 优点 缺点 普通线性回归 捕捉输入与输出的线性关系 无 简单高效 前提假设要求高 Lasso 回归 筛选变量,降低特征空间维 数 范数 1 惩罚系数:值越大特征空间维 数越低,欠拟合越严重 可以降低特征空间 维数,较易校准 欠拟合 Ridge 回归 防止过拟合 范数 2 惩罚系数:值越大过拟合效果 越低,欠拟合越严重 减少过拟合,较易校 准 欠拟合 弹性网络 回归 筛选变量,降低特征空间维 数,防止过拟合 范数 1 和 范数 2 惩罚系数:同 Lasso 和 Ridge 回归 同时降低特征空间 和防止过拟合 欠拟合,较难校准 逻辑回归 二分类 范数 1 或 范数 2 惩罚系数:同 Lasso 和 Ridge 回归 简单高效 欠拟合,精确度不高 支持向量机 二分类 /回归 惩罚系数:值越大对分类错误的容忍度 越低,方差越大 核函数:映射空间越高分类效果越明 显,方差越大 Gamma: 值越大,映射空间越稀疏 , 分类效果越明显,方差越大 可以处理非线性可 分问题,可以解决高 维空间 问题 较难训练,较难校准,样本 容量增加时模型表现一般, 分类问题无法输出伪概率 资料来源:长江证券 研究所 请阅读最后评级说明和重要声明 13 / 32 金融工程丨专题 报告 树模型 树模型以决策树为基础,在之上衍生出了各种算法,从集成学习的角度考虑,树模型可 以分为 Bagging 和 Boosting 模型,下面从这个角度,介绍经典的树模型算法。 决策树模型 决策树最初被用来设计解决分类问题,每个内部节点代表对某一属性的一次测试,每条 边代表一个测试结果,叶节点代表某个类,决策树的决策过程需要从决策树的根节点开 始,待测数据与决策树中的特征节点进行比较,并按照比较结果选择下一比较分支,直 到叶子节点作为最终决策结果,一个简单的流程如下图所示: 图 6: 决策树预测流程 资料来源:长江证券 研究所 决策树生成的核心在于每个节点的判断规则的生成,比较著名的算法有 ID3 和 CART 算 法,其主要不同在于判断节点分裂时的标准。 ID3 算法的核心思想是以信息增益作为节点判断的标准,选择分裂后信息增益最大的属 性进行分裂。首先是信息熵的概念,信息熵是用来衡量一个随机变量出现的期望值,信 息不确定性越大,熵越大,定义如下: 𝐼𝑛𝑓𝑜(𝐷) = ∑−𝑝𝑖𝑙𝑜𝑔2𝑝𝑖 𝑚 𝑖=1 其中 𝐷为所有事件集合, 𝑝为事件发生概率, 𝑚为特征总数。信息增益是指根据节点的划 分熵的变化,即根据属性分裂后导致的确定程度的增加,当确定了当前属性后,得到的 信息增益为: 𝐺𝑎𝑖𝑛(𝐷,𝐴) = 𝐼𝑛𝑓𝑜(𝐷)−∑𝐷𝑗𝐷 𝑣 𝑗=1 𝐼𝑛𝑓𝑜(𝐷𝑗) 其中 𝐴为属性,根据 信息增益最大 的属性进行节点的分裂。 CART 使用基尼指数作为判断节点的标准,基尼指数定义为: 𝐺𝑖𝑛𝑖(𝐷) = 1 −∑(𝑁𝑖𝑁)2 𝑚 𝑖=1 请阅读最后评级说明和重要声明 14 / 32 金融工程丨专题 报告 其中 𝑁和 𝑁𝑖分别表示集合 𝐷中样本数据总数和第 𝑖个分类的样本数量。则分类后的基尼指 数为: 𝐺𝑎𝑖𝑛(𝐷,𝐴) = ∑𝐷𝑗𝐷 𝐺𝑖𝑛𝑖(𝐷𝑗) 𝑣 𝑗=1 根据 基尼系数最小 的属性进行节点分裂。 决策树的算法流程可以简单描述为: 1. 初始化属性集合和数据集合; 2. 根据判断准则,确定作为当前决策 节点的属性,更新数据集合和属性集合; 3. 重复第 2 步直到满足某些条件,如子集只包含单一属性或完成了对整个数据集的 划分。 决策树也可以用来做回归,只需要将信息熵和基尼指数改变为体现回归效果的标准,如 最常用的平方误差。 集成学习算法 对于一个机器学习问题来说,给定训练数据集,求一个弱学习算法要比求一个强学习算 法要容易的多。集成学习算法的核心在于通过组合一系列的弱学习器得到一个强学习器, 起到更好预测的作用。 在弱学习器的选择上,一般选择可以捕捉到输入与输出关系的、较为简单的、普适性较 强的模型,如树、线性模型、逻辑回 归模型等。弱学习器的种类可以随着训练的进行改 变,但是目前常用算法都采用一个种类的弱学习器进行完整训练。集成学习算法根据弱 学习器之间的关系,可以分成 Bagging 系列算法和 Boosting 系列算法。 Bagging 与随机森林模型 Bagging 算法是 bootstrap aggregation 的缩写,其核心思想是通过随机有放回的抽样构 建训练数据集训练模型,最后组合。在 “方差”和“偏差” 一节中,我们介绍了机器学 习建模中,样本误差可以分解为“方差”和“偏差”两个部分,所以降低样本误差的目 标可以通过降低“方差”或降低 “偏差”两个方面做到。 Bagging 方法就是通过组合多 个在不同样本子空间上的数据集的弱学习器,以投票或加权平均的方式得到预测结果, 减少模型在不同数据集上预测的波动,从而以牺牲了部分“偏差”的代价,降低预测的 “方差”,最终降低总的预测误差。随机森林算法就是 Bagging 算法中的代表。 随机森林算法主要分为两步,数据集的生成和模型的训练,具体过程如下: 1. 使用 bootstrap 的方法抽取子集作为当前模型的训练集; 2. 训练决策树; 3. 重复 1、 2 步骤直到满足某些条件,如达到树的数目。 随机森林可以有效防止过拟合,并在建模 过程中选择出有效特征,目前在随机森林之上 衍生出了许多算法,如改变子数据集的选取方式,将有放回的随机抽样变为无放回的随 机抽样,增加列维度上的数据随机抽样,但模型的训练部分并无改变。 请阅读最后评级说明和重要声明 15 / 32 金融工程丨专题 报告 近些年来使用的越来越多的 Extremely Randomized Trees(简称 Extra Trees)则在之 上开辟了一个新的思路,通过在模型的训练部分的改变,衍生出了新的组合树的形式, 其模型的建立流程如下: 1. 使用 bootstrap 的方法抽取子集作为当前模型的训练集; 2. 对每个特征, 随机选择 分裂节点,进行比较,选择最优的特征和其分裂节点; 3. 重复 1、 2 步骤直到满足某些条件,如达到树的数目。 可以看出 Extra Trees 和随机森林的本质区别在于第二步,随机森林以训练模型的方式 得到每一棵树, Extra Trees 以随机分裂的方式得到每一棵树。目前 Extra Trees 已经在 很多地方逐渐取代随机森林成为树模型中最常用的模型,主要有以下三点原因: 1. 表现上并不逊于随机森林,且在噪声大的数据中表现更好; 2. 训练速度更快; 3. 和大部分模型的相关性低,在模型融合上有很大优势。 第三点是 Extra Trees 逐渐取 代随机森林的主要原因,尤其在当前大部分机器学习问题 上, GBDT 作为主要的模型, Extra Trees 的表现和其相关性较低,可以有效在降低模型 的整体“方差”上面做出贡献。 Boosting 与提升树模型 Boosting 方法是另一种通过弱学习器提高准确度的方法,和 Bagging 方法不同的是, Boosting 每次根据之前模型的表现,进行新的模型的训练,以改变训练数据的权值和弱 分类器的组合方式,得到最后的强学习器。 Adaboost 和 GBDT 是其中的代表。 Adaboost Adaboost 通过提高被前一轮弱分类器错 误分类样本的权值,降低那些被正确分类样本 的权值,同时加大误差小的学习器的权值,减小误差大的学习器的权值,组合成强学习 器。 Adaboost 的算法流程如下: 1. 初始化, 𝐷1 = (𝑤11,𝑤12,…,𝑤1𝑀),𝑤1𝑖 = 1𝑀,𝑖 = 1,2,…𝑀 2. 训练 K 个弱分类器 𝑘 = 1,2,…,𝐾 ( 1) 训练有权值的弱学习器 𝐺𝑘(𝑥)。 ( 2) 计算 𝐺𝑘(𝑥)在训练集上的分类误差率 𝑒𝑘。 ( 3) 计算弱学习器的系数 𝛼𝑘 = 12𝑙𝑜𝑔1−𝑒𝑘𝑒 𝑘 。 ( 4) 更新数据集的权值分布: 𝐷𝑘+1 = (𝑤𝑘+1,1,𝑤𝑘+1,2,…,𝑤𝑘+1,𝑀) 𝑤𝑘+1,𝑖 = 𝑤𝑘,𝑖 𝑒𝑥𝑝(−𝛼𝑘𝑦𝑖𝐺𝑘(𝑥𝑖))∑ 𝑤 𝑘,𝑖𝑒𝑥𝑝(−𝛼𝑘𝑦𝑖𝐺𝑘(𝑥𝑖))𝑀𝑖=1 , 𝑖 = 1,2,…,𝑀 3. 构建基本分类器加权线性组合 请阅读最后评级说明和重要声明 16 / 32 金融工程丨专题 报告 𝑓(𝑥) = ∑𝛼𝑘𝐺𝑘(𝑥) 𝐾 𝑘=1 Adaboost 可以自适应的调整样本权重进行训练,调整模型权重进行合成,算法实现简 单,应用广泛。 GBDT 对于简单的损失函数,如指数损失和平方损失,每一次提升都较为简单,