人工智能选股之损失函数的改进华泰人工智能系列之十三
创建于 更新于
摘要
本报告创新提出两种对数损失函数改进方案——加权损失函数和广义损失函数,针对样本不均衡和模型换手率问题,基于全A股选股回测显示加权损失函数显著提升超额收益率和召回率,广义损失函数有效降低换手率且提升预测稳定性,λ=0.1时表现最佳。改进方法创新整合机器学习选股及交易成本控制,为多因子模型优化提供新路径。[pidx::0][pidx::6][pidx::10][pidx::13][pidx::15]
速读内容
- 对数损失函数由逻辑回归极大似然估计推导,分解为假阳性和假阴性误差两部分,权重相等。[pidx::4][pidx::5]
- 改进方案1:加权损失函数针对样本类别不均衡问题,调节正负样本误差权重β,提升模型召回率和超额收益表现。[pidx::0][pidx::5][pidx::10]
- 改进方案2:广义损失函数新增带权重λ的损失项,控制预测结果序列变化,实现换手率约束,且适度λ值可提升模型稳定性及防止过拟合。[pidx::0][pidx::6]
- λ值越大,换手率单调下降,λ=0.1时收益和夏普比率最高,换手率下降约8.21%。较大λ值导致预测能力下降。[pidx::6][pidx::13]
- 回测结果显示加权损失函数较普通损失函数提升年化超额收益率、信息比率和Calmar比率,尤其在行业中性选股更稳健,最大回撤无显著改善。[pidx::10][pidx::11]
- 加权损失函数模型召回率显著高于普通损失函数,精确率无明显差异,说明改进有利于捕获优质标的。[pidx::12]
- 广义损失函数模型在2011年以来RankIC最高达到13.67%,优于普通损失函数,且换手率与超额收益表现存在明显折中关系。[pidx::14][pidx::15]
- 测试流程基于XGBoost,选取近9个月(加权损失)与72个月(广义损失)因子数据滚动训练,采用中证500行业市值中性标准构建组合回测。[pidx::7][pidx::8]
- 附录中详细推导并给出三种损失函数的一阶及二阶导数,及对应Python实现代码,保证改进方案的可复现性及操作性。[pidx::16][pidx::17][pidx::18]
- 风险提示:改进损失函数方案需结合实际应用环境设计,未来市场条件变化可能导致模型失效。[pidx::0][pidx::20]
深度阅读
金工研究报告深度分析——人工智能选股之损失函数的改进
---
一、元数据与报告概览
- 报告标题:《人工智能选股之损失函数的改进(华泰人工智能系列之十三)》
- 作者及联系方式:林晓明(执业证书S0570516010001)、陈烨、李子钰
- 发布机构:华泰证券研究所
- 发布日期:2018年8月2日
- 研究主题:针对机器学习中最常用的二分类损失函数——对数损失函数(logloss)的数学推导、意义解释及两种改进方案,结合机器学习选股模型,提出解决样本不均衡与换手率过高问题的改进方法,并通过XGBoost模型回测验证效果。
核心论点及目标信息:
- 传统对数损失函数中假阳性和假阴性误差权重相等,不适用于金融数据中常见的样本类别不平衡问题。
- 提出了两种改进方案:(1)加权损失函数,加大少数类别样本的损失权重,改善不均衡样本的建模能力;(2)广义损失函数,通过新增损失项控制模型换手率,实现收益预测与换手率约束的同步优化。
- 通过历史数据回测,这两种改进方案均优于传统对数损失,特别是在超额收益、信息比率和换手率控制方面有显著提升。
- 研究还展示了基于XGBoost实现损失函数自定义的数学推导及Python代码,具备较强实操价值。
整体来看,报告明确提出并验证了将损失函数设计从传统均等误差权重拓展至更适合金融选股策略的方向,强调了机器学习模型损失函数设计在投资策略实效性上的关键作用,具有显著的创新意义和应用价值。[pidx::0][pidx::15]
---
二、逐节深度解读
2.1 研究导读及对数损失函数推导
报告首先介绍了损失函数的定义意义,特别是对数损失函数起源于逻辑回归的极大似然估计。对数损失函数数学形式:
\[
\operatorname{Loss} = -\frac{1}{n} \sum{i=1}^n \left( yi \log f(xi) + (1 - yi) \log(1 - f(xi)) \right)
\]
其中,\(yi \in \{0,1\}\)为标签,\(f(xi)\)为预测概率。
通过最大化似然估计转化为最小化该损失函数,得出经典的逻辑回归损失函数形态。图表1展示了逻辑回归的典型S型函数映射关系。
关键点:对数损失函数可分为两部分,分别针对正样本(假阳性误差Loss1)和负样本(假阴性误差Loss2),但传统模型中两误差权重相同,未对样本不均衡有所顾及。[pidx::4][pidx::5]
2.2 改进方案1 — 加权损失函数
针对金融中典型的样本不均衡问题(如涨跌样本比例极不平衡),提出加权方案:
\[
\mathrm{Weighted\Loss} = -\frac{1}{n} \sum{i=1}^n \left( yi \log f(xi) + \beta (1 - yi) \log(1 - f(xi)) \right)
\]
其中,\(\beta = n1 / n2\)(正样本与负样本数量比),动态调整少数类错误的权重。在样本不均衡时,模型更关注少数类错误,提升对少数类样本的识别能力,避免模型“懒惰”地忽视少数类别。
推理基础:通过调整\(\beta\),改变损失函数对两类错误的相对重视度;实验设定三个不同超额收益阈值用于样本标签构造,实现了训练集的刻意不均衡,测试该改进在实际全A股池中的效果。[pidx::5][pidx::6]
2.3 改进方案2 — 广义损失函数
广义损失函数提出在损失函数中新增一项,带权重\(\lambda\),同时约束当前预测与另外一个序列的差异:
\[
\mathrm{General\Loss} = \sum{i=1}^{n} \left[ L1(yi, \hat{y}i) + \lambda L2(si, \hat{y}i) \right] + \Omega
\]
该结构能够在收益预测的同时,进行换手率控制。具体选取将前一期预测收益用作约束目标,即:
\[
\mathrm{General\Loss} = \sumi \left[ L1(yi^t, \hat{y}i^t) + \lambda L2(\hat{y}i^{t-1}, \hat{y}_i^t) \right] + \mathcal{Q}
\]
其中,参数\(\lambda\)控制约束强度。图表2形象展示不同\(\lambda\)值对预测结果稳定性和换手率的影响:\(\lambda\)越大,换手率越低,但拟合精度下降。
传统控制换手率方法如组合优化和风险约束均为事后调整,而此方案将换手率控制直接整合进模型损失函数,提升整体优化效率和策略稳定性,体现技术创新。[pidx::6]
2.4 测试流程与数据处理
- 训练与测试框架:统一采用XGBoost二分类模型,使用自定义损失函数接口实现改进算法,回测区间2011年1月至2018年7月,采用月度滚动训练及验证。
- 数据处理细节:
- 剔除ST股、停牌股、新上市股,保证样本活跃及代表性。
- 多达70个因子的特征工程,包括去极值、中位数填充缺失值、行业市值中性化(线性回归残差)、标准化,确保数据质量和因子发掘的纯净性。
- 训练集构建:
- 方案1中特别处理样本标签,以3%、4%、5%超额收益阈值筛选正负样本,剔除中间排序的中性样本,制造正负不均衡。
- 方案2选取月度正负三分之一股票作为标签,保证样本代表性。
- 回测组合构建:
- 方案1采用行业中性和个股等权相关的选股组合。
- 方案2构建相对中证500行业市值中性组合,关注换手率。
图表3展示整体测试步骤,图表4形象说明样本标注方法,图表5列举因子池清单,体现研究的严谨流程管理和数据处理细节。[pidx::7][pidx::8][pidx::9]
2.5 改进方案1测试结果(加权损失函数)
- 关键发现:
- 加权损失函数模型在年化超额收益率、信息比率、Calmar比率上均显著优于传统对数损失。
- 在超额收益最大回撤方面无显著优势,但整体风险收益特征更优秀。
- 行业中性构建的组合表现比分散的个股等权构建更稳定。
- 图表6总结不同行业中性及等权组合下多指标比较,红色突出加权损失优势。
- 图表7直观展示2011年至2018年超额收益累积及回撤走势,加权损失函数累计回报更高,回撤曲线更平稳。
- 图表8 & 9的详细回测数据进一步验证加权损失函数的优势。
- 图表10通过召回率和精确率指标辅助解释,显示加权损失函数模型召回率显著提升,说明其更有效识别出表现优良的正样本,而精确率保持同等水平,表明模型准确性未打折。[pidx::10][pidx::11][pidx::12]
2.6 改进方案2测试结果(广义损失函数)
- 关键点:
- 随着\(\lambda\)值增大,模型换手率明显减少,月均双边换手率降低达8.21%(在\(\lambda=0.1\)时达到最佳权衡点)。
- \(\lambda=0.1\)条件下,模型年化超额收益率和夏普比率达到最高,显示换手率控制与收益间的合理平衡。
- \(\lambda\)过大导致拟合能力下降,收益及策略表现反而变差。
- 图表11给出了回测中换手率、收益、风险指标的对比;图表12描绘超额收益随时间走势,\(\lambda=0.1\)曲线最优。
- 通过RankIC分析(图表13、14),\(\lambda=0.1\)期间RankIC达到13.67%,显著优于传统对数损失函数,说明模型更具预测能力。
- 从2017年以来普通损失函数短期表现略优,提示策略需动态调节参数及模型适应市场环境变化。[pidx::13][pidx::14]
2.7 技术细节与附录内容
- 数学推导全面:
- 详细推导了普通对数损失、一阶二阶导数。
- 加权损失函数加入权重\(\beta\)后,导数相应调整。
- 广义损失函数框架引入权重\(\lambda\),允许结合其他指标作为附加优化目标,一阶和二阶导数均明晰给出,方便实际实现。
- Python实现代码(图表15-17)示范了自定义损失函数的代码骨架,极具操作指导意义。
- 评价指标解释(附录2)详细说明分类指标(准确率、召回率、精确率)计算及其适用场景,强调了不均衡样本下召回率与精准率的优先性。
- 风险提示明确指出改进方案效果依赖模型具体应用场景,市场环境变化可能导致模型失效,提醒投资者关注策略风险。
---
三、图表深度解读
图表1:逻辑回归模型示意图
展示逻辑回归的S形映射函数,将实数预测映射到(0,1)间概率值,强调了对数损失基于概率极大似然估计的基础逻辑。
图表2:\(\lambda\)值对训练结果的影响
直观表现为较大\(\lambda\)控制预测稳定,换手率下降,但拟合收益预测准确性降低。左边图形显示预测值间差距较小,右侧则不约束变化导致预测波动更大。
图表3:测试流程图
完整展现数据获取、特征处理、训练集构建、模型训练及评价步骤,体现数据科学标准流程。
图表4:加权损失样本标注示意
示范如何剔除中间样本,以制造正负样本明显不平衡,有利于测试损失权重调整效果。
图表5:因子清单
提供70个多因子因子详细信息,为模型提供广泛的风格和基本面因子,包括估值、成长、盈利等,体现多维度选股视角。
图表6:多指标性能对比(加权损失)
通过多阈值测试,行业中性与个股等权回测的收益、最大回撤、信息比率Calmar比率对比,综合显示加权损失显著提升预测收益能力。
图表7:超额收益走势对比
绿色(加权损失)累计收益领先红色(传统损失),且回撤(阴影柱)更小,彰显改进,并为后续定量指标做支持。
图表10:分类指标召回率与精确率
召回率显著提升表明加权损失增强了识别优质股票能力;精确率持平说明模型未因加权导致误判率升高。
图表11-14:广义损失回测绩效与RankIC
显示换手率降低的同时,\(\lambda=0.1\)方案取得最佳年化收益和信息效度,有效平衡了收益与交易成本,RankIC值累积提升验证模型策略有效。
---
四、估值分析
本报告不涉及传统的公司估值分析,而是聚焦于模型损失函数的设计、改进及其对选股模型表现的量化影响。不过,从算法角度,损失函数本质是对模型输出概率分布的优化标准,改善损失函数即优化模型拟合与预测能力,从而间接影响投资组合的收益表现和风险管理。
---
五、风险因素评估
报告识别的主要风险包括:
- 损失函数的设计需针对具体样本分布和资产特征,设计不当可能无法提升模型效果;
- 机器学习基于历史投资规律,未来市场环境变化(如政策、宏观经济、市场结构等)可能导致模型失效,带来损失;
- 换手率控制参数调节不当可能降低模型预测能力,影响收益。
报告未提供具体的风险缓解策略,但强调了设计时需确保模型适应性和评估指标多元化,并提醒投资者谨慎监控市场变化动态。
---
六、批判性视角与细微差别
- 报告理论严谨,实证充分,但改进损失函数的最终效果在多大程度依赖于样本截面构造(阈值选取等)和回测区间,仍存在一定依赖性,未来还需更广泛市场环境中的验证。
- 广义损失函数对换手率控制新颖,但换手率下降与收益间的权衡对不同风格的策略可能影响不同,未深入讨论对其他风险指标的影响。
- 召回率提升是加权损失的关键优势,但未明确说明其对个股行业分布是否均衡,行业轮动等因素的影响值得关注。
- 报告使用的70个因子具体构造与数据质量未深入展开,因子多样化对模型鲁棒性影响较大,是后续提升空间。
- 指标定义和解释细致,但在实际投资中需结合交易成本、滑点等实际因素,这些方面报告中未提及。
---
七、结论性综合
本文通过详尽的理论推导、创新的损失函数设计及严谨的回测实证,提出并验证了两种针对机器学习选股模型的损失函数改进方法:
- 加权损失函数聚焦解决不均衡样本问题,通过调整误差权重,提高模型对优质股票的识别能力,进而显著提升年化超额收益和风险调整后的表现。该方法在行业中性选股构建中表现尤为稳定,召回率提升成为其主要优势。
2. 广义损失函数创新性地将收益预测与换手率约束合并到单一损失函数中,实现换手率有效控制同时保持较高收益。参数\(\lambda=0.1\)时效果最佳,换手率降低8.21%,超额收益与夏普比率均达到峰值。此外,通过RankIC分析,提升了模型的预测有效性。
图表解析显示,两种改进方案在全A股池中经过多年回测均优于传统损失函数,且模型效果具备显著的统计显著性和实操潜力。方案设计细节和Python实现代码为后续研发和实盘应用奠定基础。报告最后也指出改进方案依赖应用环境及市场状态,存在失效风险,提示投资者及模型开发者应持续优化和动态调整。
总体上,报告以严谨的学术逻辑和丰富的实证数据支持,推动了机器学习模型损失函数设计在量化选股领域的深入发展,尤其在应对样本不均衡与降低换手率两大难题上展现创新性和有效性,具有高度参考价值和应用推广潜力。[pidx::0][pidx::3][pidx::4][pidx::5][pidx::6][pidx::7][pidx::8][pidx::10][pidx::11][pidx::12][pidx::13][pidx::14][pidx::15][pidx::16][pidx::17][pidx::18][pidx::19][pidx::20]
---
总结
本报告深入挖掘对数损失函数的理论基础及在金融量化选股中的适用性问题,并创新性地提出了加权损失函数和广义损失函数两种改进方案,分别针对金融市场普遍存在的样本不均衡与组合换手率控制问题。通过系统的测试流程和广泛的回测分析,明确了两种改进对机器学习选股模型在收益、风险和换手率方面的正面作用,同时也指出参数选择的权衡与再优化空间。技术细节的公开和代码示例为业界提供了良好的实践参考。报告的严谨性与创新性为金融机器学习领域进一步提升策略实用价值提供了基础和方向。