量化交易 第十一课 因子数据处理之标准化
第十一课 因子数据处理之标准化
- 概述
- 标准化
- 方法一
- 方法二
概述
数据标准化主要是应对特征向量中数据很分散的情况, 防止小数据被大数据 (绝对值) 吞并的情况. 另外, 数据标准化也有加速训练, 防止梯度爆炸的作用.
标准化
标准化常用的方法是 z-score 标准化. 经过处理后的数据均值为 0, 标准差为 1. 处理方法是:
- μ: 样本的均值
- σ: 样本的标准差
简单说一下 sklearn 的标准化. 没有接触过 机器学习的同志们我建议你们先去看机器学习的内容, 专栏链接:
https://blog.csdn.net/weixin_46274168/category_10621044.html
例子:
In [2]: import numpy as npIn [3]: X_train = np.array([[ 1., -1., 2.],[ 2., 0., 0.],[ 0., 1., -1.]])In [4]: from sklearn.preprocessing import StandardScalerIn [5]: std = StandardScaler()In [6]: X_train_std = std.fit_transform(X_train)In [7]: X_train_std
Out[7]:
array([[ 0. , -1.22474487, 1.33630621],[ 1.22474487, 0. , -0.26726124],[-1.22474487, 1.22474487, -1.06904497]])
方法一
# 方法一
def stand(factor):"""数据标准化"""mean = factor.mean()std = factor.std()return (factor - mean) / std# 筛选条件
q = query(fundamentals.eod_derivative_indicator.pe_ratio
)# 获取数据
fund = get_fundamentals(q, entry_date="20200102").iloc[:, 0, :]# 标准化处理
fund["pe_ratio_fixed"] = stand(fund["pe_ratio"])# 画图
plt.style.use('fivethirtyeight')
f, ax = plt.subplots(1,2,figsize=(20,8))
ax[0].bar(fund.index[:500],fund['pe_ratio'][:500], color="red")
ax[1].bar(fund.index[:500],fund['pe_ratio_fixed'][:500])# 设置x轴
ax[0].set_xticks(fund.index[:501:100])
ax[1].set_xticks(fund.index[:501:100])# 设置标题
ax[0].set_title("origional")
ax[1].set_title("standard")plt.show()
输出结果:
方法二
def mad(factor):"""3倍中位数去极值"""# 求出因子值的中位数median = np.median(factor)# 求出因子值与中位数的差值, 进行绝对值mad = np.median(abs(factor - median))# 定义几倍的中位数上下限high = median + (3 * 1.4826 * mad)low = median - (3 * 1.4826 * mad)# 替换上下限factor = np.where(factor > high, high, factor)factor = np.where(factor < low, low, factor)return factor# 筛选条件
q = query(fundamentals.eod_derivative_indicator.pe_ratio
)
# 获取数据
fund = get_fundamentals(q, entry_date="20200102").iloc[:, 0, :]# 中位数绝对偏差法
fund["pe_ratio_fixed"] = mad(fund["pe_ratio"])# 画图
plt.figure(figsize=(15, 10))
plt.bar(fund.index[:500],fund['pe_ratio'][:500], color="green")
plt.bar(fund.index[:500],fund['pe_ratio_fixed'][:500])
plt.xticks(fund.index[:501:50])
plt.title("pe_ratio vs pe_ratio_fixed")
plt.show()
输出结果:
注: 两种方法并没有本质上的区别.
量化交易 第十一课 因子数据处理之标准化相关推荐
- 量化交易 第十课 因子数据处理之去极值
第十课 因子数据处理之去极值 概述 因子 Panel 结构分析 截面数据 序列数据 因子去极值 分位数去极值 中位数 四分位数 百分位数 原理 分析 代码实现 中位数绝对偏差去极值 计算方法 代码实现 ...
- 量化交易 第十二课 因子数据处理之市值中性化
第十二课 因子数据处理之市值中性化 概述 市值影响 怎么去除市值影响 回归法 简介 流程分析 代码实现 概述 众所周知, 行业和市值是两个十分显著对因子有影响力的因素. 在进行截面回归判断每个单因子的 ...
- 量化交易 实战第九课 多因子相关性分析
量化交易 实战第九课 多因子相关性分析 概述 研报分析结果 代码实现 导包 总资产回报率 IC 资本回报率 IC 计算相关性 概述 相关性 (Correlation) 在统计中是与独立性 (Indep ...
- 量化交易 实战第一课 策略入门
量化交易 实战第一课 策略入门 概述 要求 指标 市净率 股票市值 代码实现 概述 不管是技术分析还是基本面分析, 我们在进行投资的时候会选择某些表现好的股票来作为一个股票池. 从中进行交易的判断 ( ...
- 量化交易 实战第二课 金融时间序列分析 Part 1
量化交易 实战第一课 金融时间序列分析 Part 1 概述 平台 获取股票数据 需求 函数 index_components - 获取指数成分股列表 get_price - 合约历史数据 代码 统计分 ...
- 量化交易 聚宽 多因子策略(市值, ROE)
量化交易 聚宽 多因子策略(市值, ROE) # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作 ...
- 量化交易 米筐 单因子有效性分析
单因子有效性分析–因子收益率分析 因子收益率分析需要确定因子在不同股票位置上的表现,比如 我们知道市值因子是越小越好.那么这个结果怎么来的? 1.什么是因子收益率 因子收益率是在固定周期内对因子因子暴 ...
- Python量化交易05——基于多因子选择和选股策略(随机森林,LGBM)
参考书目:深入浅出Python量化交易实战 在机器学习里面的X叫做特征变量,在统计学里面叫做协变量也叫自变量,在量化投资里面则叫做因子,所谓多因子就是有很多的特征变量. 本次带来的就是多因子模型,并且 ...
- 量化交易初级阶段——简单多因子策略实现指数增强
多因子策略是量化交易之中最为常见的策略之一,相当于技术指标之中的均线,只要是学量化都会学到多因子策略. 多因子的总体思路很像高考.现在高考也是刚刚结束,也祝愿各位考生金榜题名!我就按照高考的思路简单说 ...
最新文章
- 数据库---mysql内置功能
- Go语言TCP Socket编程
- nginx日志配置指令详解
- python上一行的代码打错了怎么办_写Python代码过程中碰到各种错误异常要怎么样去处理?...
- Java并发编程实战~Happens-Before 规则
- Linux设置 cockpit 自动开机启动
- Exchange2007客户端收发邮件时找不到对象
- 分布式系统架构实战demo:SSM+Dubbo
- 安全随笔1:谨慎一次MD5值的可被穷举性
- 最大乘积java_《算法入门经典》-最大乘积(java实现)
- LeetCode 240. Search a 2D Matrix II
- python基础3-运算符总结_位操作符_优先级问题
- 简单易学的机器学习算法——Mean Shift聚类算法
- MySQL Error:1677
- LTE:RA-RNTI、T-CRNTI、C-RNTI
- java mysql 生僻字 乱码_JAVA生僻字乱码问题
- Linux基础管理命令
- 《Design Patterns Explained》读书笔记
- 反射型XSS靶场练习
- Persist Security Info 是什么意思
热门文章
- Vue全局注册公共组价
- 【专家坐堂】四种并发编程模型简介
- VBA 游标类型声明位置rs.CursorLocation
- android:layout_marginleft的作用,当在FrameLayout中查看时,layout_marginLeft在Android API lt;11上正常工作...
- heapdump 使用简述
- 加密解密工具类(Java,DES)
- 点击ListView中某一项,得到对应内容
- mysql 8.0怎么开启general_log?
- 虚拟机和Linux操作系统安装教程【图文并茂】
- 大数据初体验——基于地图可视化分析新浪新闻评论地域分布特点