numpy 归一化_归一化(MinMax)和标准化(Standard)的区别
此文参考https://blog.csdn.net/u010947534/article/details/86632819
定义上的区别
归一化:将数据的值压缩到0到1之间,公式如下
标准化:将数据所防伪均值是0,方差为1的状态,公式如下:
归一化、标准化的好处:
在机器学习算法的目标函数(例如SVM的RBF内核或线性模型的l1和l2正则化),许多学习算法中目标函数的基础都是假设所有的特征都是零均值并且具有同一阶数上的方差。如果某个特征的方差比其他特征大几个数量级,那么它就会在学习算法中占据主导位置,导致学习器并不能像我们说期望的那样,从其他特征中学习。
举一个简单的例子,在KNN中,我们需要计算待分类点与所有实例点的距离。假设每个实例点(instance)由n个features构成。如果我们选用的距离度量为欧式距离,如果数据预先没有经过归一化,那么那些绝对值大的features在欧式距离计算的时候起了决定性作用。
从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
归一化和标准化的对比分析:
首先明确,在机器学习中,标准化是更常用的手段,归一化的应用场景是有限的。我总结原因有两点:
- 1、标准化更好保持了样本间距。当样本中有异常点时,归一化有可能将正常的样本“挤”到一起去。比如三个样本,某个特征的值为1,2,10000,假设10000这个值是异常值,用归一化的方法后,正常的1,2就会被“挤”到一起去。如果不幸的是1和2的分类标签还是相反的,那么,当我们用梯度下降来做分类模型训练时,模型会需要更长的时间收敛,因为将样本分开需要更大的努力!而标准化在这方面就做得很好,至少它不会将样本“挤到一起”。
- 2、标准化更符合统计学假设
对一个数值特征来说,很大可能它是服从正态分布的。标准化其实是基于这个隐含假设,只不过是略施小技,将这个正态分布调整为均值为0,方差为1的标准正态分布而已。
我们可以先画三个图来试验一下
先画标准正态分布形成的图
import numpy as np
from sklearn.preprocessing import StandardScaler,MinMaxScaler
import matplotlib.pyplot as plttest_arr = numpy.random.randn(10000) * 100 + 500
std_sca = StandardScaler()
mmx_sca = MinMaxScaler()test_std = std_sca.fit_transform(test_arr.reshape(-1,1))
test_mmx = mmx_sca.fit_transform(test_arr.reshape(-1,1))fig,axes = plt.subplots(1,3,figsize=(20,5))plt.suptitle('Original Array ===> After Standard Transform ===> After MinMax TransForm',fontsize=20)
for idx, array in enumerate([test_arr,test_std,test_mx]):axes[idx].hist(array,bins=10)
接下来看看偏态数据形成的图
test_arr = np.concatenate((test_arr,np.linspace(5000,100000,num=30)),axis=0)
std_sca = StandardScaler()
mmx_sca = MinMaxScaler()test_std = std_sca.fit_transform(test_arr.reshape(-1,1))
test_mmx = mmx_sca.fit_transform(test_arr.reshape(-1,1))fig,axes = plt.subplots(1,3,figsize=(20,5))
plt.suptitle('Original Array ===> After Standard Transform ===> After MinMax TransForm',fontsize=20)
for idx, array in enumerate([test_arr,test_std,test_mx]):axes[idx].hist(array[:10010],bins=50)
可以看到标准化没有改变原始数据的极值例子,而归一化则将所有数据都压缩到了01区间内,改变了数据的分布。
numpy 归一化_归一化(MinMax)和标准化(Standard)的区别相关推荐
- 归一化 均值归一化_归一化折现累积收益
归一化 均值归一化 Do you remember the awkward moment when someone you had a good conversation with forgets y ...
- 对数坐标归一化_归一化方法 Normalization Method
@walterchen better than never in most condition =============================== 关于神经网络归一化方法的整理 由于采集的 ...
- 均值归一化_数据预处理:标准化和归一化
网上很多关于标准化和归一化的文章,不少是误人子弟的存在.这篇文字希望给大家讲清讲透这两个概念. 一.标准化(standardization) 公式一般为:(X-mean)/std,其中mean是平均值 ...
- python 归一化_数据的标准化和归一化
数据的标准化 归一化 归一化的目标 归一化的好处 归一化的方法 无量纲表达式 为什么要对数据进行归一化处理 常见的数据归一化方法 Python归一化处理方法 数据的标准化 数据的标准化(normali ...
- 用spss进行数据的标准化处理_什么是数据标准化、中心化、归一化?SPSS又如何实现?...
在统计分析.数据挖掘过程中,经常性的接触到数据的标准化处理.数据中心化处理,还有数据归一化处理,那么它们各自是什么意思?如何通过SPSS软件实现呢? 大型数据分析项目中,数据来源不同,量纲及量纲单位不 ...
- python scale标准化函数_归一化与标准化
(一) 特征缩放定义特征缩放是用来统一资料中的自变项或特征范围的方法,在资料处理中,通常会被使用在资料前处理这个步骤.因为在原始的资料中,各变数的范围大不相同. (二) 特征缩放的目的对于大多数的机器 ...
- python np array归一化_浅谈利用numpy对矩阵进行归一化处理的方法
浅谈利用numpy对矩阵进行归一化处理的方法 本文不讲归一化原理,只介绍实现(事实上看了代码就会懂原理),代码如下: def Normalize(data): m = np.mean(data) mx ...
- 对数坐标归一化_数据归一化,标准化的几种方法
归一化方法(Normalization Method) 1. 把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0-1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内. ...
- python怎么数据归一化_基于数据归一化以及Python实现方式
数据归一化: 数据的标准化是将数据按比例缩放,使之落入一个小的特定区间,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权. 为什么要做归一化: 1)加快梯度下降 ...
最新文章
- mockcpp的so加载失败问题
- 今天遭遇了同样的坑,折腾了一上午
- 第一步:python下PyGame的下载与安装
- Oracle中的sequence对象
- 简化java_Java泛型太复杂了?如何简化?
- 宝塔linux面板mysql数据库误删恢复过程
- 【转】人脸识别:AI产品经理需要了解的CV通识
- Mujoco编程开发-官方文档
- 碳膜、金属膜、金属氧化膜电阻区别
- 模板方法模式(java语言实现)
- 翻遍互联网都找不到的解决方案,一行代码轻松实现 Gitbook 默认折叠左侧菜单效果
- 你的大三,推荐做的几件事
- Hi 小姐姐,这是你要的瘦身大长腿效果?
- TLC2543和TLV5614的STM32程序
- UE4 SetVisibility()和SetHiddenInGame()的比较
- SpiderFlow平台v0.3.0初次使用并爬取薄荷网的热量和减法功效
- 对于动态“内存”分配,Have you explored?(C语言)
- 百度袁佛玉:真正的元宇宙,将是强大AI能力与虚拟空间的完美结合
- stm32f401 边沿捕获_基于ST STM32F401 BLE紫外线监测方案
- 暮羽鑫:UI设计都学哪些课程