收益 368% 的 Logistic Regression 策略示例 ( 附代码)

2018-01-22 14:04
策略和技术

模型简介

逻辑回归(Logistic Regression)属于常用的机器学习算法之一,可以用来回归,也可以用来分类,主要是二分类。传统的二分类方法如SVM选择将两个不同类别的样本给完全分开,思想是找到最能区分它们的那个分类超平面。当你给它一个新的样本,它能够给你的只有一个答案,你这个样本是正类还是负类。而Logistic Regression的分类属于“模糊”(fuzzy)分类的范畴,他提供了额外的信息,会告诉你这个样本有百分之多少的概率属于正类,又有百分之多少的概率属于负类。

实际应用中,Logistic Regression常被用于估计某种事物的可能性。例如,它可以用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方。还有类似的某用户购买某商品的可能性,某病人患有某种疾病的可能性等等。

理论介绍

要了解Logistic Regression,首先要了解什么是机器学习。比较正统的机器学习算法一般遵循以下几个步骤:

  1. 对于一个问题,我们用数学语言来描述它,然后建立一个模型,例如回归模型或者分类模型等来描述这个问题;
  2. 通过最大似然、最大后验概率或者最小化分类误差等等建立模型的代价函数,也就是一个最优化问题。找到最优化问题的解,也就是能拟合我们的数据的最好的模型参数;
  3. 然后我们需要求解这个代价函数,找到最优解。

具体到Logistic Regression,其本质就是一个线性分类模型,它与线性回归的不同点在于:试图将线性回归输出的很大范围的数,例如从负无穷到正无穷,压缩到0和1之间,用以表达“可能性”。而实现这个伟大的功能其实就只需要平凡一举,也就是在输出加一个logistic函数(或称sigmoid函数):

Sigmoid 函数在有个很漂亮的“S”形,如下图所示(引自维基百科):

所以说,Logistic Regression 其实就是一个被logistic方程归一化后的线性回归,仅此而已。
鉴于本文只是简单介绍Logistic Regression的理念以及在选股策略中的应用,涉及到更细节的数学过程,例如代价函数的构造,正则项的添加等等,在此就不做赘述了,感兴趣的读者可以自行查找文献学习。

制定策略

应用Logistic Regression的选股策略逻辑很简单,即训练-预测-选股。主要实现工具为sklearn库中的LogisticRegression类,具体方法如下:

  1. 首先设定一个交易周期(如一个月);
  2. 在每个周期第一天,使用上一个周期第一天的因子数据作为训练数据(training data)。对于training data的选取,我们采用10个因子,包括技术指标、财务指标、基本面数据等,作为数据的特征(feature);采用周期内的收益率与基准收益率(这里我们选用沪深300指数作为基准)相比较的结果,作为数据的分类结果(label),即,如果收益率超过基准收益率,label=1;如果收益率低于基准收益率,label=0;
  3. 训练模型;
  4. 将每个周期第一天的因子数据作为样本,输入模型进行预测;
  5. 根据预测结果,选取属于正类——即收益率超过基准的可能性最大的30支股票,平均分配资产进行投资。

下面我们云宽客投研平台实现这一策略:

收益曲线

收益归因

小结

Logistic Regression是用机器学习处理分类问题(Classification Problem)的经典方法,将其应用在选股策略上是一个有趣的尝试。从回测结果上看,策略收益与大盘趋势在长时间内基本贴合,在最后几个波段中取得了不错的超额收益。之所以未能取得可靠且稳健的收益,主要原因可能在于以下几个方面:

1)本文直接使用模型的默认参数进行训练、预测,模型本身在正则化等参数选择方面可能存有改进空间;

2)对于数据特征(feature)的选取可以做更深入的挖掘。选取因子过多容易产生过拟合等问题;选取因子过少又容易导致分类准确性不足。如何选取合适的、有效的,与收益相关的因子,一直是一个难题;

3)因子与收益率之间可能存在非线性关系。作为线性分类模型,Logistic Regression很难发现数据之间的非线性联系,可能因此导致分类失准;

4)用历史数据判断未来,本身就有一定的局限性。对股票未来收益率做分类不同于其他应用。分类方法往往在处理截面数据时更加有效,而在处理时间序列数据时有一定的局限性。

关于回测平台、历史数据,可以在这里下载:http://www.***链接失效或指向广告已经被屏蔽***.com/# /introduce。
这个平台的数据都是经过清洗的,而且策略不会外露,有保密系统,还是比较安全的。
想学习更多量化策略,也可以来这里看看:http://www.***链接失效或指向广告已经被屏蔽***.com/# /lzClass。

Code:http://www.***链接失效或指向广告已经被屏蔽***.com/# /content?id=bc3ec18d91cc4efd8500756e3470f024
交易策略, 机器学习, 高收益, 量化策略

点击切换 到互动模式(当前为阅读模式)