生成特征_使用gplearn自定义特征自动生成模块

背景:数据科学领域中,数据一直都是主要驱动力,特征工程作为其中重要一环,成为无论是kaggle类的数据竞赛,还是工业界应用中关注的重点。特征工程中有重要的一个环节叫做特征融合,好的特征融合能帮助构造当前模型不能学习到的知识,通常产生新的特征会很依赖于专家知识,当在缺乏专家知识的情况下,我们就需要一款工具帮我们自动生成特征。因此gplearn就主要产生了。

简介:待补充

gplearn特征生成使用案例:以官方给出的boston房屋数据为例

  • 安装
pip install gplearn #python3.7版本
pip install gplearn==0.3.0 #python2.7版本,当前0.4版本的gplearn不再支持python2.7
  • 引入库
from sklearn.datasets import load_boston
from gplearn.genetic import SymbolicTransformer›
import pandas as pd
import numpy as np
import gplearn as gp
  • 数据导入
def data_prepare():
    boston = load_boston()
    boston_feature = pd.DataFrame(boston.data, columns=boston.featur
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、该资源括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于深度学习的股票价格预测和量化策略研究python源码+项目说明+数据集+PPT.zip #### 介绍 本项目通过使用A股全市场的股票数据,并先使用LightGBM模型进行对50个价量因子的筛选,选出重要程度最高的10个因子。之后再用BiLSTM模型选取进行因子组合,建立量化投资策略,最后对该策略进行实证与回测,发现该策略优于市场基准指数,说明了BiLSTM模型在股票价格预测和量化投资的实际应用价值。 #### 项目流程图 ![LightGBM-BiLSTM实验步骤] 本项目先从因子库中选取通过IR检验的50个因子。之后对因子依次进行去极值、缺失值处理、标准化和中性化的因子清洗步骤。再利用LighGBM模型进行因子选择,根据因子重要性进行排序得到前十的因子作为本横截面挑选出来的因子。紧接着利用BiLSTM对挑选出的十个因子进行组合,建立多因子模型。最后构建量化策略,进行策略回测与绩效分析。 #### 实验数据 1. 股票数据: A股市场日线数据集含5872309行数据,即5872309个样本。A股全市场日线数据集数据集有以下11个特征,分别为股票代码(ts_code)、交易日期(trade_date)、开盘价(open)、最高价(hign)、最低价(low)、收盘价(close)、昨收价(pre_close)、涨跌额(change)、涨跌幅(pct_chg)、成交量(vol)和成交额(amount)。中证全指日线数据集含5057行数据,即含5057个样本。如表13所示,中证全指日线数据集有以下7个特征,分别依次为交易日期(trade_date)、开盘价(open)、最高价(hign)、最低价(low)、收盘价(close)、交易量(volume)和昨收价(pre_close)。 2. 因子数据: 本项目节使用如下方式构建价量因子,构建价量因子的基础要素有两点:首先是基础字段,其次是算子。基础字段括日频的最高价(high)、最低价(low)、开盘价(open)、收盘价(close)、上一日收盘价(pre_close)、成交量(vol)、涨跌(pct_chg)、换手率(turnover_rate)、交易金额(amount)、总市值(total_mv)和复权因子(adj_fator)。本项目通过gplearn提供的基础算子集和自己定义的特殊算子,得到算子列表。通过将基础字段和算子不同的组合,利用遗传规划和人工数据挖掘的方法得到因子生成的公式。 #### 构建的BiLSTM模型 ![BiLSTM的网络结构] 1.层与层之间使用循环神经网络默认的tanh和linear作为激活函数。并且为了防止过拟合加入Dropout,但是如果Dropout使用过大的丢弃比列会出现欠拟合的现象,因此Dropout的丢弃比列取值为0.01。最终模型的BiLSTM循环层的神经元个数为100,采用一层BiLSTM层和三层全连接层,其中BiLSTM层和第一个全连接层之间设置了一个Dropout。 2.本项目使用数据的数据量较大,所以选用epochs=400,batch_size=1024。模型的损失函数采用均方误差(Mean Square Error,MSE)。其中优化器采用随机梯度下降(Stochastic Gradient Descent,SGD)。随机梯度下降相对于梯度下降(Gradient Descent,GD)有在信息冗余的情况下更能有效的利用信息,前期迭代效果卓越,适合处理大样本的数据这三个优势。由于本实验训练数据量较大,使用SGD的话每次仅用一个样本来迭代,训练的速度很快,可以大大减少训练所花费的时间。本实验使用keras中的默认值,即lr=0.01、momentum=0.0、decay=0.0和nesterov=False。 ......

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值