归一化处理方法

归一化处理方法数据归一化问题是数据挖掘中特征向量表达时的重要问题 当不同的特征成列在一起的时候 由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据 吃掉 的情况 这个时候我们需要做的就是对抽取出来的 featuresvect 进行归一化处理 以保证每个特征被分类器平等对待 下面我描述几种常见的 Normalizatio 并提供相应的 python 实现 其实很简单 1 0 1 标准

数据归一化问题是数据挖掘中特征向量表达时的重要问题,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据“吃掉”的情况,这个时候我们需要做的就是对抽取出来的features vector进行归一化处理,以保证每个特征被分类器平等对待。下面我描述几种常见的Normalization Method,并提供相应的python实现(其实很简单):

1、(0,1)标准化:

这是最简单也是最容易想到的方法,通过遍历feature vector里的每一个数据,将Max和Min的记录下来,并通过Max-Min作为基数(即Min=0,Max=1)进行数据的归一化处理:

归一化处理方法

 

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,这里的关键在于复合标准正态分布,个人认为在一定程度上改变了特征的分布,关于使用经验上欢迎讨论,我对这种标准化不是非常地熟悉,转化函数为:

归一化处理方法

 

LaTex:{x}_{normalization}=\frac{x-\mu }{\sigma }

Python实现:

def  Z_ScoreNormalization(x,mu,sigma):     x = (x - mu) / sigma;     return x;

 

3、Sigmoid函数

Sigmoid函数是一个具有S形曲线的函数,是良好的阈值函数,在(0, 0.5)处中心对称,在(0, 0.5)附近有比较大的斜率,而当数据趋向于正无穷和负无穷的时候,映射出来的值就会无限趋向于1和0,是个人非常喜欢的“归一化方法”,之所以打引号是因为我觉得Sigmoid函数在阈值分割上也有很不错的表现,根据公式的改变,就可以改变分割阈值,这里作为归一化方法,我们只考虑(0, 0.5)作为分割阈值的点的情况:

 

归一化处理方法

归一化处理方法

 

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的状态,方便调试使用。

函数的基本性质:

  1. 定义域:(−∞,+∞)(−∞,+∞)
  2. 值域:(−1,1)(−1,1)
  3. 函数在定义域内为连续和光滑函数
  4. 处处可导,导数为:f′(x)=f(x)(1−f(x))f′(x)=f(x)(1−f(x))

最早Logistic函数是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(P)的 S 形曲线。起初阶段大致是指数增长;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。

二、 Sigmoid函数与逻辑回归

Sigmoid函数之所以叫Sigmoid,是因为函数的图像很想一个字母S。这个函数是一个很有意思的函数,从图像上我们可以观察到一些直观的特性:函数的取值在0-1之间,且在0.5处为中心对称,并且越靠近x=0的取值斜率越大。

机器学习中一个重要的预测模型逻辑回归(LR)就是基于Sigmoid函数实现的。LR模型的主要任务是给定一些历史的{X,Y},其中X是样本n个特征值,Y的取值是{0,1}代表正例与负例,通过对这些历史样本的学习,从而得到一个数学模型,给定一个新的X,能够预测出Y。LR模型是一个二分类模型,即对于一个X,预测其发生或不发生。但事实上,对于一个事件发生的情况,往往不能得到100%的预测,因此LR可以得到一个事件发生的可能性,超过50%则认为事件发生,低于50%则认为事件不发生

从这两个条件来看,Sigmoid很好的符合了LR的需求。关于逻辑回归的具体实现与相关问题,可看这篇文章Logistic函数(sigmoid函数) – wenjun’s blog,在此不再赘述。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203834.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:29
下一篇 2026年3月19日 下午9:29


相关推荐

  • JMeter入门教程详解

    JMeter入门教程详解简介本文由 xmeter 君写给想了解性能测试和 JMeter 的小白 适合对这两者了解很少的同学们 如果已经有使用经验的请绕道 别浪费时间 我们将介绍 JMeter 的使用场景 如何安装 运行 JMeter 以及开始一个最最简单的测试 你还徘徊在 JMeter 的门口吗 别犹豫了 跟着本文做完 你就可以开启你的 JMeter 之旅了 JMeter 是开源软件 Apache 基金会下的一个性能测试工具 用来测试部署在服务器端的应用程序的性能 近来 JMeter 因为其使用简单 现在也被社区作为接口测试工具 啥 什么是性能测

    2026年3月20日
    2
  • linux搭建ftp详解

    linux搭建ftp详解一、概念1.1介绍FTP:Filetransferprotocol文件传输协议端口TCP21:命令TCP20:数据1.2原理默认采用被动模式被动模式FTP为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客…

    2022年7月12日
    22
  • python中循环遍历for怎么用_python遍历字典的值

    python中循环遍历for怎么用_python遍历字典的值在Python中,如何使用“for”循环遍历字典?今天我们将会演示三种方法,并学会遍历嵌套字典。在实战前,我们需要先创建一个模拟数据的字典。dict_1={‘Name’:’Zara’,’Age’:7,’Class’:’First’,’Address’:’Beijing’}方法1:使用For循环+索引进行迭代在Python中遍历字典的最简单方法,是将其直接放入for循环中。Python会自动将dict_1视为字典,并允许你迭代其key键。然后,我们就可以使用索引

    2022年8月12日
    5
  • 计算机科学专业必读的44册经典著作

    计算机科学专业必读的44册经典著作中文名称 计算机科学经典著作英文名称 ComputerScie 版本 简介 1 TheArtofComp nbsp nbsp nbsp Author Donald E Knuth nbsp nbsp nbsp nbsp nbsp BookInfo 这部书被誉为 20 世纪最重要的 20 部著作之一 与 Einstein 的 相对论 并列 是计算机科学领域的权威著作 全书共分 7 卷 目前已

    2026年3月19日
    2
  • 在Vue中使用HappyPack

    在Vue中使用HappyPack在 Vue 中使用 HappyPack 这篇文章主讲在 Vue 中使用 HappyPack 介绍 HappyPack 安装 HappyPack 引入 HappyPack 使用方法这篇文章主讲在 Vue 中使用 HappyPack 这篇文章主要讲的的是在 Vue 中使用 HappyPack 其中涉及到的其他 webpack 中的知识点 不做讲解 介绍 HappyPack 当你要搜这篇文章是 你肯定已经知道了这个 HappyPack 的作用是什么 但是呢我们还是要说一下他的作用是什么 防止随机点进来的同学一脸懵比的进来 一脸懵逼的出去 由于有大量文

    2026年3月26日
    3
  • wifi数据包解析_详细解析WiFi模块的基础知识「建议收藏」

    wifi数据包解析_详细解析WiFi模块的基础知识「建议收藏」1、WiFi模块的SDK是什么?SDK是WiFi模块的软件开发工具包(全称:SoftwareDevelopmentKit)的英文简称,一般都是一些软件工程师为特定的软件包、软件框架,硬件平台,操作系统等建立应用软件时的开发工具的集合。2、WiFi模块的驱动是什么?驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂…

    2022年7月21日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号