原理

数据正规化(data normalization)是将数据的每个样本(向量)变换为单位范数的向量,各样本之间是相互独立的.其实际上,是对向量中的每个分量值除以正规化因子.常用的正规化因子有 L1, L2 和 Max.假设,对长度为 n 的向量,其正规化因子 z 的计算公式,如下所示:

注意:Max 与无穷范数

 不同,无穷范数

 是需要先对向量的所有分量取绝对值,然后取其中的最大值;而 Max 是向量中的最大分量值,不需要取绝对值的操作.

补充:一阶范数也称为曼哈顿距离(Manhanttan distance)或街区距离;二阶范数也称为欧式距离(Euclidean distance).

实现

在 Python 库 sklearn 中,有两种实现方式进行数据的正规化,这两种实现都可通过参数 norm 选择正规化因子,可选项有 'l1', 'l2' 和 'max'.

方法一:采用 sklearn.preprocessing.Normalizer 类,其示例代码如下:

#!/usr/bin/env python#-*- coding: utf8 -*-#author: klchang

# Use sklearn.preprocessing.Normalizer class to normalize data.

from __future__ importprint_functionimportnumpy as npfrom sklearn.preprocessing importNormalizer

x= np.array([1, 2, 3, 4], dtype='float32').reshape(1,-1)print("Before normalization:", x)

options= ['l1', 'l2', 'max']for opt inoptions:

norm_x= Normalizer(norm=opt).fit_transform(x)print("After %s normalization:" % opt.capitalize(), norm_x)

方法二:采用 sklearn.preprocessing.normalize 函数,其示例代码如下:

#!/usr/bin/env python#-*- coding: utf8 -*-#author: klchang

# Use sklearn.preprocessing.normalize function to normalize data.

from __future__ importprint_functionimportnumpy as npfrom sklearn.preprocessing importnormalize

x= np.array([1, 2, 3, 4], dtype='float32').reshape(1,-1)print("Before normalization:", x)

options= ['l1', 'l2', 'max']for opt inoptions:

norm_x= normalize(x, norm=opt)print("After %s normalization:" % opt.capitalize(), norm_x)

参考资料

1. Scikit-learn Normalization mode (L1 vs L2 & Max). https://stats.stackexchange.com/questions/225564/scikit-learn-normalization-mode-l1-vs-l2-max

2. sklearn.preprocessing.Normalizer - scikit-learn Documentation. http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.Normalizer.html

3. sklearn.preprocessing.normalize - scikit-learn Documentation. http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html

4. scikit-learn Documentation - 4.3. Preprocessing data. http://scikit-learn.org/stable/modules/preprocessing.html

5. Norm (mathematics). https://en.wikipedia.org/w/index.php?title=Norm_(mathematics)&oldid=838245314

python normalize函数_数据正规化 (data normalization) 的原理及实现 (Python sklearn)相关推荐

  1. 数据正规化(data normalization)的原理及实现(numpy)

    原理 数据正规化(data normalization)是将数据的每个样本(向量)变换为单位范数的向量,各样本之间是相互独立的.其实际上,是对向量中的每个分量值除以正规化因子.常用的正规化因子有 L1 ...

  2. python normalize函数_归一化函数normalize详解

    opencv 2 归一化函数normalize详解 1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后 (通过某种算法)限制在你需要的一定范围内.首先归一化是为了后面数据处理的方便,其次是 ...

  3. excel运行python自定义函数_终于,可以在Excel中直接使用Python!

    大家好,我是早起. 经常给大家推荐好用的数据分析工具,也收到了铁子们的各种好评.这次也不例外,我要再推荐一个,而且是个爆款神器. Excel和Jupyter Notebok都是我每天必用的工具,而且两 ...

  4. python包裹 函数_什么是最干净的方法调用一个Python函数从C++与一个Sigg包裹的Obj....

    下面是我解决这个问题的工作方案.它使用了上述"无所不能"和"柔印"的建议. 特别是,我们用SWIG director创建一个回调类,然后在Python中从中派生 ...

  5. python 数据比对 函数_用python比对csv文件中的数据

    做了个问卷,下载了收集数据xlsx文件,把数据弄到另一个表格文件中,需要校验数据转移的准确性. 使用python的csv库,使用csv.reader(f)函数读取表格数据,转成列表,确定数据行的主键, ...

  6. python代码规范化_数据标准化方法及其Python代码实现

    数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法.标准差法).折线型方法(如三折线法).曲线型方法 ...

  7. python partition函数_如何使用正确的姿势进行高效Python函数式编程?

    演讲者:丁来强@Splunk  PyConChina2015 北京站 9月12日与9月19日,PyConChina 2015上海站与北京站顺利落下帷幕."人生苦短,Python 当歌&quo ...

  8. python编写函数_浅谈Python 函数式编程

    匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...

  9. python log函数_求你别再花大价钱学 Python 之爬虫实战

    引子 Python 基本概念 Python 优势和劣势 优势 Python 的劣势 Python 安装设置 Python 基本语法 程序例子 Python 基本语法 Python 爬虫实现 爬虫相关 ...

最新文章

  1. CircularFloatingActionMenu
  2. 超越梦想,追求卓越——图灵五周年生日聚会圆满成功
  3. IT外企那点事[转载]
  4. np.c_和np.r_用法
  5. 1.4 计算机系统概述思维导图小结-常见问题和易混淆知识点(组成原理)
  6. matlab绘制蜂窝,PPT技巧:如何快速设计蜂窝表达的图形设计?
  7. php 汉字转拼音类,PHP汉字转换拼音的类_php
  8. JavaScript 发布-订阅模式
  9. 无法联系上证书的吊销服务器,CA服务器搭建问题,日志分析---吊销功能无法检查证书的吊销...
  10. java语言执行模式,使用java.exe执行静默模式
  11. 解决mac安装homebrew后报错-bash: brew: command not found
  12. 百度地图Polyline 清除
  13. 记一次spirngMVC整合HttpPrinter的过程
  14. Linux系统如何安装网易云音乐
  15. TL-WR720n 硬改 16M rom
  16. nebulagraph exchange3.0.x
  17. python遍历字母_如何遍历字母表?
  18. 关于认知升级的思考-认知升级是深度思考、认知升级是探索未知
  19. react-router嵌套路由页面无法显示
  20. harbor 下载地址(国内代理)

热门文章

  1. Linux操作系统介绍
  2. 无线路由服务器蹭网,如何查看他人已经用我的无线路由器蹭网了?
  3. AI解锁无人时代 仍需数据安全保驾护航
  4. python自学笔记(一)简单爬虫篇
  5. JavaScript 快速排序
  6. 牛气的JavaScript,让雪花算法成为空气
  7. 安装配置Nginx全分布
  8. 使用caffe中的imagenet对自己的图片进行分类训练
  9. 【ECCV2018】Unsupervised Hard Example Mining from Videos for Object Detection
  10. 设计模式之建造者模式(C++)