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中字典的键的使用
Aug 19 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
django框架自定义用户表操作示例
Aug 07 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
基于Python 的语音重采样函数解析
Jul 06 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
基于flask实现五子棋小游戏
May 25 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 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获得当前的脚本网址
2007/12/10 PHP
UCenter Home二次开发指南
2009/05/28 PHP
header跳转和include包含问题详解
2012/09/08 PHP
php汉字转拼音的示例
2014/02/27 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php实现删除空目录的方法
2015/03/16 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
2019/05/21 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python3.8中使用f-strings调试
2019/05/22 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
艺术家策划的室内设计:Curious Egg
2019/03/06 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
工程承包协议书
2014/04/22 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
青春雷锋观后感
2015/06/10 职场文书
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js