第十一课 因子数据处理之标准化

  • 概述
  • 标准化
    • 方法一
    • 方法二

概述

数据标准化主要是应对特征向量中数据很分散的情况, 防止小数据被大数据 (绝对值) 吞并的情况. 另外, 数据标准化也有加速训练, 防止梯度爆炸的作用.

标准化

标准化常用的方法是 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()

输出结果:

注: 两种方法并没有本质上的区别.

量化交易 第十一课 因子数据处理之标准化相关推荐

  1. 量化交易 第十课 因子数据处理之去极值

    第十课 因子数据处理之去极值 概述 因子 Panel 结构分析 截面数据 序列数据 因子去极值 分位数去极值 中位数 四分位数 百分位数 原理 分析 代码实现 中位数绝对偏差去极值 计算方法 代码实现 ...

  2. 量化交易 第十二课 因子数据处理之市值中性化

    第十二课 因子数据处理之市值中性化 概述 市值影响 怎么去除市值影响 回归法 简介 流程分析 代码实现 概述 众所周知, 行业和市值是两个十分显著对因子有影响力的因素. 在进行截面回归判断每个单因子的 ...

  3. 量化交易 实战第九课 多因子相关性分析

    量化交易 实战第九课 多因子相关性分析 概述 研报分析结果 代码实现 导包 总资产回报率 IC 资本回报率 IC 计算相关性 概述 相关性 (Correlation) 在统计中是与独立性 (Indep ...

  4. 量化交易 实战第一课 策略入门

    量化交易 实战第一课 策略入门 概述 要求 指标 市净率 股票市值 代码实现 概述 不管是技术分析还是基本面分析, 我们在进行投资的时候会选择某些表现好的股票来作为一个股票池. 从中进行交易的判断 ( ...

  5. 量化交易 实战第二课 金融时间序列分析 Part 1

    量化交易 实战第一课 金融时间序列分析 Part 1 概述 平台 获取股票数据 需求 函数 index_components - 获取指数成分股列表 get_price - 合约历史数据 代码 统计分 ...

  6. 量化交易 聚宽 多因子策略(市值, ROE)

    量化交易 聚宽 多因子策略(市值, ROE) # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作 ...

  7. 量化交易 米筐 单因子有效性分析

    单因子有效性分析–因子收益率分析 因子收益率分析需要确定因子在不同股票位置上的表现,比如 我们知道市值因子是越小越好.那么这个结果怎么来的? 1.什么是因子收益率 因子收益率是在固定周期内对因子因子暴 ...

  8. Python量化交易05——基于多因子选择和选股策略(随机森林,LGBM)

    参考书目:深入浅出Python量化交易实战 在机器学习里面的X叫做特征变量,在统计学里面叫做协变量也叫自变量,在量化投资里面则叫做因子,所谓多因子就是有很多的特征变量. 本次带来的就是多因子模型,并且 ...

  9. 量化交易初级阶段——简单多因子策略实现指数增强

    多因子策略是量化交易之中最为常见的策略之一,相当于技术指标之中的均线,只要是学量化都会学到多因子策略. 多因子的总体思路很像高考.现在高考也是刚刚结束,也祝愿各位考生金榜题名!我就按照高考的思路简单说 ...

最新文章

  1. 数据库---mysql内置功能
  2. Go语言TCP Socket编程
  3. nginx日志配置指令详解
  4. python上一行的代码打错了怎么办_写Python代码过程中碰到各种错误异常要怎么样去处理?...
  5. Java并发编程实战~Happens-Before 规则
  6. Linux设置 cockpit 自动开机启动
  7. Exchange2007客户端收发邮件时找不到对象
  8. 分布式系统架构实战demo:SSM+Dubbo
  9. 安全随笔1:谨慎一次MD5值的可被穷举性
  10. 最大乘积java_《算法入门经典》-最大乘积(java实现)
  11. LeetCode 240. Search a 2D Matrix II
  12. python基础3-运算符总结_位操作符_优先级问题
  13. 简单易学的机器学习算法——Mean Shift聚类算法
  14. MySQL Error:1677
  15. LTE:RA-RNTI、T-CRNTI、C-RNTI
  16. java mysql 生僻字 乱码_JAVA生僻字乱码问题
  17. Linux基础管理命令
  18. 《Design Patterns Explained》读书笔记
  19. 反射型XSS靶场练习
  20. Persist Security Info 是什么意思

热门文章

  1. Vue全局注册公共组价
  2. 【专家坐堂】四种并发编程模型简介
  3. VBA 游标类型声明位置rs.CursorLocation
  4. android:layout_marginleft的作用,当在FrameLayout中查看时,layout_marginLeft在Android API lt;11上正常工作...
  5. heapdump 使用简述
  6. 加密解密工具类(Java,DES)
  7. 点击ListView中某一项,得到对应内容
  8. mysql 8.0怎么开启general_log?
  9. 虚拟机和Linux操作系统安装教程【图文并茂】
  10. 大数据初体验——基于地图可视化分析新浪新闻评论地域分布特点