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实现的简单hangman游戏实例
Jun 28 Python
浅谈Python中的闭包
Jul 08 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
如何实现删除numpy.array中的行或列
May 08 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
python与pycharm有何区别
Jul 01 Python
小结Python的反射机制
Sep 28 Python
Python开发五子棋小游戏
May 02 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
ADODB的数据库封包程序库
2006/12/31 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
Vue仿今日头条实例详解
2018/02/06 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
python不带重复的全排列代码
2013/08/13 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
python实现文法左递归的消除方法
2020/05/22 Python
Python如何实现的二分查找算法
2020/05/27 Python
Python识别处理照片中的条形码
2020/11/16 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
台湾旅游网站:雄狮旅游网
2017/08/16 全球购物
金讯Java笔试题目
2013/06/18 面试题
医院门卫岗位职责
2013/12/30 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
国博复兴之路观后感
2015/06/02 职场文书