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实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
python版简单工厂模式
Oct 16 Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python字典改变value值方法总结
Jun 21 Python
python的slice notation的特殊用法详解
Dec 27 Python
Python响应对象text属性乱码解决方案
Mar 31 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 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浏览历史记录的方法
2015/03/10 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
js模拟弹出效果代码修正版
2008/08/07 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
django之session与分页(实例讲解)
2017/11/13 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
python字符串与url编码的转换实例
2018/05/10 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python 操作excel表格的方法
2020/12/05 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
点菜员岗位职责范本
2014/02/14 职场文书
小学生评语大全
2014/04/18 职场文书
文体活动总结范文
2014/05/05 职场文书
数据保密承诺书
2014/06/03 职场文书
大专生找工作自荐书
2014/06/10 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
运动会报道稿大全
2015/07/23 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
话题作文之呼唤
2019/12/18 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技