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将html转成PDF的实现代码(包含中文)
Mar 04 Python
Python使用turtule画五角星的方法
Jul 09 Python
PyQt5每天必学之单行文本框
Apr 19 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python3去掉string中的标点符号方法
Jan 22 Python
python3使用matplotlib绘制散点图
Mar 19 Python
如何爬取通过ajax加载数据的网站
Aug 15 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
详解pandas apply 并行处理的几种方法
Feb 24 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
写给小白看的JavaScript异步
2017/11/29 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
解析python实现Lasso回归
2019/09/11 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
捐款倡议书范文
2014/02/02 职场文书
音乐专业自荐信
2014/02/07 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
交通事故和解协议书
2014/09/25 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
家电创业计划书
2019/08/05 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
python保存图片的四个常用方法
2022/02/28 Python