拿到一批原始数据后,经过对缺失值的填补、异常值的处理以及组合型数据的生成,可以得到一份较为完整的数据集。但是不同指标具有不同的性质(连续、离散)和不同的数量级,直接进行训练会削弱数量级较低数据带来的影响,所以还需要对数据进行标准化处理(目标值通常不需要缩放),才能让数据可以投入训练。

数据标准化就是把有量纲的数据变成无量纲的数据,把量级不同的数据处理到同一个量级,从而让不同纬度的数据之间具有可比性,对于机器学习来说,用来提升模型的预测效果。

具体常用的标准化方法有如下几种:

1.Min-max标准化(Min-max normalization)

2.z-score标准化(zero-mena normalization)

3.log函数转换

4.atan函数转换

1.Min-max标准化(Min-max normalization)

min-max标准化也称为最小-最大缩放、归一化。归一化的逻辑是将数据缩放到0~1之间,实现方法很简单。是将值减去最小值并除以最大值和最小值之差。 公式为:

Scikit-learn提供了一个名为MinMaxScaler的转换器,具体使用方法为:

from sklearn.preprocessing import MinMaxScalerdata = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler()
print(scaler.fit(data))
print("*" * 30)
print(scaler.data_max_)
print("*" * 30)
print(scaler.transform(data))

结果为:

MinMaxScaler()
******************************
[ 1. 18.]
******************************
[[0.   0.  ][0.25 0.25][0.5  0.5 ][1.   1.  ]]

MinMaxScaler可用参数:

feature_rangetuple(min,max), default=(0,1):调整参数可以手动设定要缩放到的具体范围

2.z-score标准化(zero-mena normalization)

z-score标准化方法为先减去平均值(所以标准化的均值总是0),然后除以方差,从而使得结果的分布具备单位方差,不同于最小最大缩放的是,标准化不将值绑定到特定范围,对于某些算法来说,可能是个问题(例如,神经网络期望输入的值范围是0~1)。但是标准化的方法受异常值的影响更小。Scikit-Learn提供了一个标准化转换器StandardScaler,具体使用方法为:

from sklearn.preprocessing import StandardScalerdata = [[0, 0], [0, 0], [1, 1], [1, 1]]
scaler = StandardScaler()
print(scaler.fit(data))
print("*"*30)
print(scaler.mean_)
print("*"*30)
print(scaler.transform(data))

结果为

StandardScaler()
******************************
[0.5 0.5]
******************************
[[-1. -1.][-1. -1.][ 1.  1.][ 1.  1.]]

3.log函数转换

通过以10为底的log函数转换的方法同样可以通过x=log10(x)实现归一化,但是要是需要数据一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。公式为

python中log10函数计算方法

import numpy as npy = np.log10(x)import mathy = math.log10(x)

4.atan函数转换

用反正切函数也可以实现数据的归一化,使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上,公式为

python中反正切函数计算方法

import mathy = math.atan(x)

参考链接:数据标准化方法 - 知乎

机器学习中数据标准化相关方法相关推荐

  1. 如何解决机器学习中数据不平衡问题

    作者:无影随想  时间:2016年1月.  出处:https://zhaokv.com/machine_learning/2016/01/learning-from-imbalanced-data.h ...

  2. 如何解决机器学习中数据不平衡问题(转)

    作者:无影随想  时间:2016年1月.  出处:http://www.zhaokv.com/2016/01/learning-from-imbalanced-data.html 这几年来,机器学习和 ...

  3. 机器学习中数据预处理——标准化/归一化方法(scaler)

    由于工作问题比较忙,有两周没有总结一下工作学习中遇到的问题. 这篇主要是关于机器学习中的数据预处理的scaler变化. 工作中遇到的问题是:流量预测问题,拿到的数据差距非常大,凌晨的通话流量很少几乎为 ...

  4. 论机器学习中数据的重要性

    机器学习实验报告 一.数据工程意义及其内容(自创名词,勿怪) ​ 现如今,机器学习在越来越多的领域中凸显出其不可替代的重要性,人们开始从各领域渗透机器学习的典型案例,希望其大规模投入使用,而好的训练结 ...

  5. 机器学习中数据的归一化处理

    数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能 ...

  6. 机器学习中数据预处理方法

    在知乎上也看到了这个,不知道哪个是原创,这里粘上链接 https://zhuanlan.zhihu.com/p/51131210 前言 数据预处理的重要性? 熟悉数据挖掘和机器学习的小伙伴们都知道,数 ...

  7. 对于机器学习中数据拟合度和模型复杂度的一些建议

    Advice for Applying Machine Learning 我这里想做的是,确保大家在设计机器学习系统时,能够明白怎样选择一条最合适.最正确的路径.因此,接下来我们要讨论一些实用的建议和 ...

  8. pytorch神经网络中数据标准化

    文章目录 一. 标准化优点 二. 标准化目的 三. 标准化方法 1.batch norm 2.layer norm 3.instance norm 4.group norm 5.switchable ...

  9. 机器学习中数据预处理的方式

    数据标量化 如果需要学习的不同的数据标签之间的量纲差距太大,那么需要进行数据标量化操作,有3个主要的优势: 可以使梯度下降更快 躲避"NaN陷阱",数据中有些数值可能超过了计算机的 ...

  10. 【机器学习算法专题(蓄力计划)】九、机器学习中数据的假设检验

    文章目录 假设检验的概述 假设校验的应用 假设校验的基本思想 显著性水平 假设检验的步骤 左右侧检验与双侧检验 原假设与备择建设 检验统计量计算检验的统计量 检验中常说的小概率 P值 左侧检验与右侧检 ...

最新文章

  1. Spring boot的配置类
  2. 处理数字_10_计算某列重复最多的值
  3. pytorch注意事项
  4. 资源权限操作-添加资源权限
  5. 在查询的结果中添加自增列 两种方法
  6. 筛选法求1到100以内的素数
  7. 支付宝封杀比特币,可以说是毫不留情!
  8. 这款能够生成文档的接口测试软件,为什么越来越受欢迎?
  9. 基于深度学习的音乐推荐系统简述
  10. 免费注册 上传html,一些可以免费上传文件的网站
  11. EF中的Guid主键
  12. pd.DataFrame()函数
  13. word一键生成ppt 分页_PPT插入word自动分页
  14. 梳理STM32F429之通信传输部分---NO.8 硬件SPI
  15. Macbook用户如何在外部显示器上获得4K 60 FPS的技巧
  16. 学术-物理:莫比乌斯带
  17. Codeforces Beta Round #4 (Div. 2 Only)
  18. 佟大为扮女人秀壮腿 被大夸美艳动人
  19. html css能找到工作吗,会html+css可以找到工作吗?
  20. Mysql 左连接 多个字段

热门文章

  1. Abaqus单位制简述
  2. 中国三大石油公司信息化进展
  3. python把excel填充到网页_Python获取某网页数据并写入excel
  4. 计算不可压缩流体- NS方程求解算法
  5. 商务与经济统计学习 --多个比率的比较、独立性及拟合优度检验
  6. 宠物管理系统CLI版本(Python实现/内附完整代码)
  7. 计算机网络七版pdf
  8. GJB289A总线测试工装研究
  9. SQL插入数据时让ID从指定值自增
  10. Win10专业工作站版的Ghost备份与还原