这个算是一个小坑,因为我也还在学习过程中,代码慢慢完善。一开始在python 2.7,vnpy 1.9.2环境中实现。后面在python 3.7也基本实现,增加支持了xgboost。代码写的繁杂,多多抱歉。
首先说说Scikit-learn是Python语言中专门针对机器学习应用而发展起来的一款开源框架,相对于现在深度学习库tensorflow,由于Scikit-learn本身不支持深度学习,也不支持GPU加速,但是相对于tensorflow那种近乎黑箱的多层神经网络,还是比较好从数学来解释分析。
分类是指识别给定对象的所属类别,属于监督学习的范畴,最常见的应用场景包括垃圾邮件检测和图像识别等。目前Scikit-learn已经实现的算法包括:支持向量机(SVM),最近邻,逻辑回归,随机森林,决策树以及多层感知器(MLP)神经网络等等。这里会使用逻辑回归,决策数, MLP神经网络和SVM向量机,其实都是两句代码事情。
不考虑内部的复杂数学逻辑,这里功能性的使用Scikit-learn特征分类的功能。
1) 选取的特征值,为了避免数据值非逻辑化,这里不直接使用点位最高点这些,而使用那些和具体点位无关的指标,比如atr,cci,rsi,std和bar的涨跌百分比。
2) 利用这些特征值进行分类,这里对于期货走势就是三类,1 是之后上涨,0是之后无规律&#