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查询Mysql时返回字典结构的代码
Jun 18 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
Apr 20 Python
图文详解WinPE下安装Python
May 17 Python
python绘制简单折线图代码示例
Dec 19 Python
python处理csv中的空值方法
Jun 22 Python
Python实现多属性排序的方法
Dec 05 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
pymongo中聚合查询的使用方法
Mar 22 Python
Python jieba库用法及实例解析
Nov 04 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
python数字转对应中文的方法总结
Aug 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
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
深入浅出php socket编程
2015/05/13 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python根据unicode判断语言类型实例代码
2018/01/17 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
python 发送json数据操作实例分析
2019/10/15 Python
Python之指数与E记法的区别详解
2019/11/21 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
演讲开场白台词大全
2015/05/29 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
七年级生物教学反思
2016/02/20 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL