量化策略开发,高质量社群,交易思路分享等相关内容
『正文』
ˇ
Adaboost算法介绍
提升算法的主要目的是将预测能力有限的单个弱学习器(例如决策树)组合 成一个集成强学习器。依据弱学习器的组合方式,可将集成学习算法分为两大种 类,一类为 Bagging 系列(并行方法),一类为 Boosting 系列(串行方法)。对于 多棵决策树,如果以 Bagging 的方式组合起来,可以得到上文中随机森林算法;如果以 Boosting 的方式组合起来,就得到了接下来的 AdaBoost 算法。
AdaBoost 算法基本原理
对于使用 Boosting 方式的集成算法有两个关键问题:1. 如何修正串行中每 一轮训练数据的权值;2. 如何将一组弱学习器组合成强学习器。
首先 AdaBoost 的做法[3]是提高那些被前一轮弱分类器错误分类样本的权值, 并降低那些被正确分类样本的权值。使得那些没有得到正确分类的数据,由于其 权值的加大而将受到后一轮弱分类器的更大关注。于是,分类问题被一系列的弱 分类器逐一解决。
其次 AdaBoost 采取加权多数表决的方法组合弱分类器。具体来说,加大分 类误差率小的弱分类器权值,使其在表决中起较大的作用,减小分类误差率大的 弱分类器的权值,使其在表决中起较小的作用。
策略逻辑
从A股中选择出市值最小的300只票(剔除上市短,ST,停牌票),获取这些股票的财务因子进行训练。从训练结果里再次选择出市值最小的前10只进行交易,每月第一个交易日选股,踢出不在池子里的,10只股票轮动。
模块导入
from __future__ import print_function, absolute_import
from gm.api import *
import datetime
import pandas as pd
import numpy as np
from sklearn.ensemble import AdaBoostClassifier
from s