numpy 归一化_归一化(MinMax)和标准化(Standard)的区别

32dc590b8a23ac978c49660644d7c13e.png

此文参考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)

882dd9924d1c32be492197cfb940941d.png
接下来看看偏态数据形成的图
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)

614548f106b56cddd0408e9647408bf9.png

可以看到标准化没有改变原始数据的极值例子,而归一化则将所有数据都压缩到了01区间内,改变了数据的分布。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习网页栅格系统的几篇好文

1.[蓝色理想]网页的栅格系统设计[1] http://www.blueidea.com/design/doc/2008/6171.asp 2.[蓝色理想]网页的栅格系统设计[2] http://www.blueidea.com/design/doc/2008/6171_2.asp 3.网页栅格系统研究(1):960的秘密 http://www.68design.net…

linux中updatedb命令详解,updatedb命令

updatedb命令用来创建或更新 slocate/locate 命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。 注意:slocate 本身具有一个数据库&#xff…

python多态_Python基础入门18节-第十六节 面向对象如何理解多态

多态是面向对象的一大特性,Python本身也是一门多态性的语言。在Python中要实现多态,还是得借助于上节提到的继承。假设有这么一个场景,在夏季我们可以看到荷花、牡丹花、太阳花,夏天一到这些花全都开放了。这些花我们就将它理解多…

WCF中的方法重载 实现

操作重载注意:WCF是不支持重载的,如果硬是写成重载的话,会抛出异常 InvalidOperationException,但是我们可以模拟! 原C#中的方法重载: interface ICalculator...{ int Add(int arg1,int arg2); double Add(double arg1,double arg2);} 在…

linux重新安装ssh服务器,Linux平台ssh服务器安装方法

玩蛇网推荐图文教程:python 列表关于SSH是什么及SSH的作用这里不做介绍,如果要了解可以自行面度哦。下面我就就开始以Linux平台为例,讲讲Linux平台ssh服务器安装方法。以下方法中都是以root用户权限去操作,大家在真实操作中&#…

linux重启后root密码错误,Linux技巧| 解决Debian Root密码忘记的问题

Debian Root密码忘记开机 grub 菜单下进入单用户模式进行修改密码/修改系统文件。解决过程注:本教程适用于 Debian 7 8 91. 首先。重启一下系统。在开机 grub 内核选择菜单那里,迅速按“e”。2. 将光标移动到“linux”开头的那一行,将原来的“…

python缩进tab还是空格_Python码农有话说:写代码时应该缩进使用 tab还是空格?...

对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单。在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。大…

SilverLight学习笔记--Silverlight中WebService通讯

本文我们学习如何在Silverlight中使用WebService进行通讯。 新建项目Silverlight应用程序,命名为:SLWebService。在服务器端我们需要做两项目工作: 1、在Web项目中新建一个类Person,我们将在WebService中返回它的实例化对象。Person类定义如下…

linux怎么修改sftp默认端口,转:linux 修改sftp服务默认提供者sshd的session timeout

NAT firewalls like to time out idle sessions to keep their state tables clean and their memory footprint low.NAT防火墙喜欢对空闲的会话进行超时处理,以确保它们状态表的干净和内存的低占用率。Some firewalls are nice, and let you idle for up to a day …

导出文件_一招解决PDF文件导出图片

将PDF文件保存为高清图片是经常需要进行的保存方式之一,因为PDF文件虽然安全性高,但是相比较图片而言,还是不易进行查看的,那么如何将PDF文件导出图片呢?以前也了解过很多方法,不过最好的当然不是截图了。虽…

如何在 C# 中用 SharpZipLib 进行 ZIP 压缩与解压(转)

转自:http://www.cftea.com/c/2008/04/A1FQ34RYSYNLFT47.aspSharpZipLib 是一个免费的组件,可以利用它对 ZIP 等多种格式进行压缩与解压。 本地下载 SharpZipLib 0.85.4; 本地下载 SharpZipLib 0.85.4 源文件与示例; 本地下载 Sha…

linux缓存文件用户权限错误,CVE-2019-11244漏洞到底该如何修复?--关于缓存文件权限设置...

2019年5月,Kubernetes社区(后面简称”社区“)修复了标号为CVE-2019-11244的安全漏洞,这个修复方案似乎并不彻底,于是有人发布Issue对此提出异议,希望提供进一步修复方案。虽然Kubernetes已经非常安全,但对于一些安全标…

用python计算ln函数_python-含参函数

#!/usr/local/bin/python3# -*- coding:utf-8 -*-#----------函数位置参数和关键字参数----------def test(x,y): #此处的 x,y为形参print(x)print(y)test(1,2) #位置参数调用-此处的 1,2为实参,且与形参一一对应test(y2,x1) #关键字调用&…

ASP.NET MEMBERSHIP的XML配置

做了一个MEMBERSHIP的测试&#xff0c;先记下来&#xff0c;以备后用&#xff01;JAVAEYE网站是不是被人攻击了啊。。怎么打不开。。晕。。我有好多文章都在里面啊。。都没有备份的。。。 <connectionStrings><add name"conn"connectionString"server.…

高中数学40分怎么办_2019年第35届全国高中数学联赛试题及参考答案

2019年第35届全国高中数学联赛考试已结束&#xff0c;本文收集整理本次数学联赛的试题和参考答案&#xff0c;以供大家了解参考。本次数学联赛由全国高中数学联赛组委会统一命题&#xff0c;共分为一试和二试。一试时间为80分钟&#xff0c;包括8道填空题(每题8分)和3道解答题(…

linux 关机 日志,centos7 异常关机了,怎么查看系统的异常日志?

centos7 异常关机了&#xff0c;怎么查看系统的异常日志?crash中也没有dump的文件.这是messages日志:Feb 26 11:14:03 moon systemd-logind: Removed session 11.Feb 26 11:14:56 moon systemd: Created slice user-0.slice.Feb 26 11:14:56 moon systemd: Starting Session 1…

一个把图片保存到SQL数据库的工具

因公司的业务需要,会把很多图片保存到数据库中.因此做了一个很简单的工具,把图片保存到SQL数据库中.1.可以连接到不同服务器上的SQL数据库,可以选择操作各个表;2.可以指定保存到数据库的图片格式(JPG or BMP);3.可以用windows图片和传真查看器预览图片.下载地址:一个把图片保存…

redis 哨兵_Redis哨兵机制的原理介绍

php中文网最新课程每日17点准时技术干货分享本篇文章给大家带来的内容是介绍Redis的哨兵机制&#xff0c;让大家了解哨兵机制的原理和如何实现。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。概述Redis的复制有一个缺点&#xff0c;当主…

linux 编写完程序吗,linux下编写C++程序

注&#xff1a;本文写的内容全部在ubuntu12.04下完成。要在linux下写C程序&#xff0c;要懂的一点编译的知识。下面介绍一下。源代码->预处理器(负责将代码补充)->汇编程序(生成汇编语言)-> 目标程序(生成二进制文件)->链接器(链接文件)->可执行程序(生成执行程…

BoooLee pyretoolkit -- 一个基于python re模块的在线正则表达式测试工具

为了学习python re模块正则表达式&#xff0c;寻找了一些正则表达式工具&#xff0c;除了komodo捆绑的rx toolkit外&#xff0c;其他的测试工具都是基于.net或其他引擎的&#xff0c;语法上多少有点出入。 干错自己写一个&#xff0c;用了2天时间&#xff0c;python re googl…