人工智能系列之十三:人工智能选股之损失函数的改进-20180802-华泰证券-22页-2mb
报告摘要
金工研究:人工智能选股之损失函数改进总结
核心内容
本文围绕对数损失函数在多因子选股中的应用,提出了两种改进方案:加权损失函数和广义损失函数。两种方案分别针对样本不均衡问题和模型换手率控制问题,旨在提升机器学习模型在实际投资中的表现。
主要观点
-
对数损失函数的作用:
- 是二分类模型中常用的损失函数,由逻辑回归的极大似然估计推导而来。
- 用于衡量预测值与真实值之间的差距,其形式为:
$$
\operatorname {Loss} = - \frac {1}{n} \sum_ {i = 1} ^ {n} \left(y _ {i} \log \left(f (x _ {i})\right) + (1 - y _ {i}) \log \left(1 - f (x _ {i})\right)\right)
$$ - 该函数对假阳性与假阴性误差赋予相同权重。
-
改进方案1:加权损失函数:
- 引入权重 $\beta$,用于增强数量较少样本的损失项权重。
- 通过设置不同的超额收益率阈值(3%、4%、5%),构建样本不均衡的训练集。
- 在行业中性选股和个股等权选股中,加权损失函数显著提升了年化超额收益率、信息比率和Calmar比率。
- 在行业中性选股下,加权损失函数的优势更加稳定。
-
改进方案2:广义损失函数:
- 引入额外的损失项,用于控制预测值的变化,从而降低模型换手率。
- 损失函数形式为:
$$
\text {General} = \sum_ {i = 1} ^ {n} \left[ L _ {1} \left(y _ {i} ^ {t}, \hat {y} _ {i} ^ {t}\right) + \lambda L _ {2} \left(\hat {y} _ {i} ^ {t - 1}, \hat {y} _ {i} ^ {t}\right] + \Omega
$$ - 随着 $\lambda$ 的增大,模型的换手率下降,但年化超额收益率和夏普比率随之下降。
- $\lambda = 0.1$ 时,模型的年化超额收益率、夏普比率和RankIC值达到最佳。
关键信息
-
测试方法:
- 使用XGBoost分类模型进行测试。
- 数据来源为全A股票池,时间范围为2011年1月31日至2018年7月27日。
- 使用月度滚动回测,训练集生成方式根据不同的改进方案有所不同。
-
样本处理:
- 中位数去极值、缺失值处理、行业市值中性化和标准化是数据预处理的重要步骤。
-
因子池:
- 包括估值、成长、财务质量、杠杆、市值、动量反转、波动率、股价、beta、换手率、情绪、股东等大类因子。
- 每个因子都有详细的描述,如EP(净利润/总市值)、ROE(净资产收益率)等。
-
测试结果:
- 加权损失函数在样本不均衡情况下表现更优,特别是在行业中性选股中。
- 广义损失函数在降低换手率方面有效,但对预测能力有负面影响。
- 不同参数和策略类型下,模型表现存在差异,需要综合评估。
测试结果分析
加权损失函数测试结果
- 年化超额收益率:加权损失函数在行业中性选股和个股等权选股中均优于普通损失函数。
- 信息比率:加权损失函数在多个阈值下表现更优。
- Calmar比率:加权损失函数在多个阈值下也表现更优。
- 最大回撤:加权损失函数在部分情况下表现略差,但整体预测能力更优。
- 换手率:加权损失函数在行业中性选股下换手率稳定。
广义损失函数测试结果
- 换手率:随着 $\lambda$ 的增加,换手率呈单调下降趋势。
- 年化超额收益率:在 $\lambda = 0.1$ 时达到最高。
- 夏普比率:在 $\lambda = 0.1$ 时也达到最佳。
- RankIC值:在 $\lambda = 0.1$ 时表现最佳。
- 最大回撤:随着 $\lambda$ 增大,最大回撤增加,说明预测能力下降。
总结和展望
- 两种改进方案均在特定场景下取得较好效果。
- 加权损失函数更适合样本不均衡问题,而广义损失函数更适合控制换手率。
- 未来研究方向包括进一步优化广义损失函数的结构,以更好地适应不同目标序列。
- 损失函数的设计需根据具体应用环境进行调整,以达到最佳效果。
风险提示
- 损失函数的改进方案需要根据具体应用环境设计,否则可能无法达到预期效果。
- 机器学习模型是对历史投资规律的挖掘,未来市场环境变化可能导致模型失效。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载