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操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
python微信公众号之关键词自动回复
Jun 15 Python
Python中collections模块的基本使用教程
Dec 07 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
jupyter 导入csv文件方式
Apr 21 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
Python自动化测试基础必备知识点总结
Feb 07 Python
使用Django实现商城验证码模块的方法
Jun 01 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中的cookie
2006/11/26 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
js验证上传图片的方法
2015/05/12 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
python实现挑选出来100以内的质数
2015/03/24 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
预备党员的自我评价
2014/03/12 职场文书
工作失误检讨书
2015/01/26 职场文书
运动会宣传语
2015/07/13 职场文书
团支部书记竞选稿
2015/11/21 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
详解Python类和对象内容
2021/06/22 Python