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实现程序的单一实例用法分析
Jun 03 Python
Python多线程爬虫简单示例
Mar 04 Python
Django中Forms的使用代码解析
Feb 10 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
python设置环境变量的作用整理
Feb 17 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
python函数指定默认值的实例讲解
Mar 29 Python
python中tkinter复选框使用操作
Nov 11 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判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
跟老齐学Python之开始真正编程
2014/09/12 Python
python实现的简单猜数字游戏
2015/04/04 Python
django实现前后台交互实例
2017/08/07 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
Numpy之文件存取的示例代码
2018/08/03 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
荷兰超市:DEEN
2018/03/14 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
项目合作协议书范本
2014/04/16 职场文书
党员承诺书范文
2014/05/19 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书