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 相关文章推荐
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
Python中with及contextlib的用法详解
Jun 08 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python Pandas常用函数方法总结
Jun 15 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 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教程孙仲岳主讲
2008/01/07 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
原生js实现验证码功能
2017/03/16 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
python cookielib 登录人人网的实现代码
2012/12/19 Python
简单的Python的curses库使用教程
2015/04/11 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python六大开源框架对比
2015/10/19 Python
python编程实现希尔排序
2017/04/13 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
详解Python是如何实现issubclass的
2019/07/24 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
个人自我剖析材料
2014/02/07 职场文书
酒店节能减排方案
2014/05/26 职场文书
地心历险记观后感
2015/06/15 职场文书
欠条范文
2015/07/03 职场文书
公司业务员管理制度
2015/08/05 职场文书
小学班级管理心得体会
2016/01/07 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
解析python中的jsonpath 提取器
2022/01/18 Python