python实现几种归一化方法(Normalization Method)


Posted in Python onJuly 31, 2019

数据归一化问题是数据挖掘中特征向量表达时的重要问题,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据“吃掉”的情况,这个时候我们需要做的就是对抽取出来的features vector进行归一化处理,以保证每个特征被分类器平等对待。下面我描述几种常见的Normalization Method,并提供相应的python实现(其实很简单):

1、(0,1)标准化:

这是最简单也是最容易想到的方法,通过遍历feature vector里的每一个数据,将Max和Min的记录下来,并通过Max-Min作为基数(即Min=0,Max=1)进行数据的归一化处理:

python实现几种归一化方法(Normalization Method)

LaTex:{x}_{normalization}=\frac{x-Min}{Max-Min}

Python实现:

def MaxMinNormalization(x,Max,Min):
	x = (x - Min) / (Max - Min);
	return x;

找大小的方法直接用np.max()和np.min()就行了,尽量不要用python内建的max()和min(),除非你喜欢用List管理数字。

2、Z-score标准化:

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,这里的关键在于复合标准正态分布,个人认为在一定程度上改变了特征的分布,关于使用经验上欢迎讨论,我对这种标准化不是非常地熟悉,转化函数为:

python实现几种归一化方法(Normalization Method)

LaTex:{x}_{normalization}=\frac{x-\mu }{\sigma }

Python实现:

def Z_ScoreNormalization(x,mu,sigma):
	x = (x - mu) / sigma;
	return x;

这里一样,mu(即均值)用np.average(),sigma(即标准差)用np.std()即可。

3、Sigmoid函数

Sigmoid函数是一个具有S形曲线的函数,是良好的阈值函数,在(0, 0.5)处中心对称,在(0, 0.5)附近有比较大的斜率,而当数据趋向于正无穷和负无穷的时候,映射出来的值就会无限趋向于1和0,是个人非常喜欢的“归一化方法”,之所以打引号是因为我觉得Sigmoid函数在阈值分割上也有很不错的表现,根据公式的改变,就可以改变分割阈值,这里作为归一化方法,我们只考虑(0, 0.5)作为分割阈值的点的情况:

python实现几种归一化方法(Normalization Method)

python实现几种归一化方法(Normalization Method)

LaTex:{x}_{normalization}=\frac{1}{1+{e}^{-x}}

Python实现:

def sigmoid(X,useStatus):
	if useStatus:
		return 1.0 / (1 + np.exp(-float(X)));
	else:
		return float(X);

这里useStatus管理是否使用sigmoid的状态,方便调试使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用pil生成缩略图的方法
Mar 26 Python
python调用staf自动化框架的方法
Dec 26 Python
Django中信号signals的简单使用方法
Jul 04 Python
简单了解python的一些位运算技巧
Jul 13 Python
python科学计算之scipy——optimize用法
Nov 25 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
python实现梯度下降法
Mar 24 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
Django restful framework生成API文档过程详解
Nov 12 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
python 实现德洛内三角剖分的操作
Apr 22 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 #Python
python实现windows倒计时锁屏功能
Jul 30 #Python
python创建属于自己的单词词库 便于背单词
Jul 30 #Python
python中append实例用法总结
Jul 30 #Python
简单了解django orm中介模型
Jul 30 #Python
Python爬虫学习之翻译小程序
Jul 30 #Python
安装docker-compose的两种最简方法
Jul 30 #Python
You might like
php缓存技术介绍
2006/11/25 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
php微信开发之谷歌测距
2018/06/14 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
zbar解码二维码和条形码示例
2014/02/07 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
用python写爬虫简单吗
2020/07/28 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
在什么时候需要使用"常引用"
2015/12/31 面试题
2014年食堂工作总结
2014/11/20 职场文书
小平您好观后感
2015/06/09 职场文书
锦旗赠语
2015/06/23 职场文书
消防宣传语大全
2015/07/13 职场文书
考研经验交流会策划书
2015/11/02 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
5道关于python基础 while循环练习题
2021/11/27 Python