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 相关文章推荐
详解Python2.x中对Unicode编码的使用
Apr 03 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
Python工厂函数用法实例分析
May 14 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
Python占用的内存优化教程
Jul 28 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
logging level级别介绍
Feb 21 Python
python爬虫容易学吗
Jun 02 Python
python如何利用traceback获取详细的异常信息
Jun 05 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版(5)
2006/10/09 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
一文读懂Python 枚举
2020/08/25 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
小学生安全责任书
2014/07/25 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python