机器学习中数据标准化相关方法
拿到一批原始数据后,经过对缺失值的填补、异常值的处理以及组合型数据的生成,可以得到一份较为完整的数据集。但是不同指标具有不同的性质(连续、离散)和不同的数量级,直接进行训练会削弱数量级较低数据带来的影响,所以还需要对数据进行标准化处理(目标值通常不需要缩放),才能让数据可以投入训练。
数据标准化就是把有量纲的数据变成无量纲的数据,把量级不同的数据处理到同一个量级,从而让不同纬度的数据之间具有可比性,对于机器学习来说,用来提升模型的预测效果。
具体常用的标准化方法有如下几种:
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)
参考链接:数据标准化方法 - 知乎
机器学习中数据标准化相关方法相关推荐
- 如何解决机器学习中数据不平衡问题
作者:无影随想 时间:2016年1月. 出处:https://zhaokv.com/machine_learning/2016/01/learning-from-imbalanced-data.h ...
- 如何解决机器学习中数据不平衡问题(转)
作者:无影随想 时间:2016年1月. 出处:http://www.zhaokv.com/2016/01/learning-from-imbalanced-data.html 这几年来,机器学习和 ...
- 机器学习中数据预处理——标准化/归一化方法(scaler)
由于工作问题比较忙,有两周没有总结一下工作学习中遇到的问题. 这篇主要是关于机器学习中的数据预处理的scaler变化. 工作中遇到的问题是:流量预测问题,拿到的数据差距非常大,凌晨的通话流量很少几乎为 ...
- 论机器学习中数据的重要性
机器学习实验报告 一.数据工程意义及其内容(自创名词,勿怪) 现如今,机器学习在越来越多的领域中凸显出其不可替代的重要性,人们开始从各领域渗透机器学习的典型案例,希望其大规模投入使用,而好的训练结 ...
- 机器学习中数据的归一化处理
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能 ...
- 机器学习中数据预处理方法
在知乎上也看到了这个,不知道哪个是原创,这里粘上链接 https://zhuanlan.zhihu.com/p/51131210 前言 数据预处理的重要性? 熟悉数据挖掘和机器学习的小伙伴们都知道,数 ...
- 对于机器学习中数据拟合度和模型复杂度的一些建议
Advice for Applying Machine Learning 我这里想做的是,确保大家在设计机器学习系统时,能够明白怎样选择一条最合适.最正确的路径.因此,接下来我们要讨论一些实用的建议和 ...
- pytorch神经网络中数据标准化
文章目录 一. 标准化优点 二. 标准化目的 三. 标准化方法 1.batch norm 2.layer norm 3.instance norm 4.group norm 5.switchable ...
- 机器学习中数据预处理的方式
数据标量化 如果需要学习的不同的数据标签之间的量纲差距太大,那么需要进行数据标量化操作,有3个主要的优势: 可以使梯度下降更快 躲避"NaN陷阱",数据中有些数值可能超过了计算机的 ...
- 【机器学习算法专题(蓄力计划)】九、机器学习中数据的假设检验
文章目录 假设检验的概述 假设校验的应用 假设校验的基本思想 显著性水平 假设检验的步骤 左右侧检验与双侧检验 原假设与备择建设 检验统计量计算检验的统计量 检验中常说的小概率 P值 左侧检验与右侧检 ...
最新文章
- Spring boot的配置类
- 处理数字_10_计算某列重复最多的值
- pytorch注意事项
- 资源权限操作-添加资源权限
- 在查询的结果中添加自增列 两种方法
- 筛选法求1到100以内的素数
- 支付宝封杀比特币,可以说是毫不留情!
- 这款能够生成文档的接口测试软件,为什么越来越受欢迎?
- 基于深度学习的音乐推荐系统简述
- 免费注册 上传html,一些可以免费上传文件的网站
- EF中的Guid主键
- pd.DataFrame()函数
- word一键生成ppt 分页_PPT插入word自动分页
- 梳理STM32F429之通信传输部分---NO.8 硬件SPI
- Macbook用户如何在外部显示器上获得4K 60 FPS的技巧
- 学术-物理:莫比乌斯带
- Codeforces Beta Round #4 (Div. 2 Only)
- 佟大为扮女人秀壮腿 被大夸美艳动人
- html css能找到工作吗,会html+css可以找到工作吗?
- Mysql 左连接 多个字段