数据挖掘|数据预处理|基于Python的数据标准化方法

基于Python的数据标准化方法

    • 1. z-score方法
    • 2. 极差标准化方法
    • 3. 最大绝对值标准化方法

在数据分析之前,通常需要先将数据标准化(Standardization),利用标准化后的数据进行数据分析,以避免属性之间不同度量和取值范围差异造成数据对分析结果的影响。

1. z-score方法

Z-score方法是基于原始数据的均值和标准差来进行数据标准化的,处理后的数据均值为0,方差为1,符合标准正态分布,且无量纲。其主要目的是将不同量级的数据统一化为同一个量级,用计算出的z-score值衡量,保证了数据间具有可比性。常用形式为: x n o r m a l i z a t i o n = x − μ σ x_{normalization} = \frac{x-\mu}{\sigma} xnormalization=σxμ

其中 x x x表示原始数据, μ \mu μ表示原始数据的平均值, σ \sigma σ表示原始数据的标准差, x n o r m a l i z a t i o n x_{normalization} xnormalization表示标准化后的数据。数据标准化的方法有自定义和 S t a n d a r S c a l e r ( ) StandarScaler() StandarScaler()等方法。
以下使用sklearn模块中的方法StandardScaler()来实现数据标准化,需要调用sklearn包。

#自定义数据标准化示例
def my_scale(data):mean= sum(data)/len(data)  #求均值#求方差variance=( sum([(i-mean)**2 for i in data]))/len(data)#按照公式标准化normal = [(i - mean)/(variance)**0.5 for i in data] return normal
import numpy as np
X = np.array([[2.,-1.,2.],[2.,0.,0.],[0.,1.,-2.]])
scale=my_scale(X)
xs=np.array(scale)
print("标准化前的数据:\n",X)
print("标准化后的数据:\n",xs)
标准化前的数据:[[ 2. -1.  2.][ 2.  0.  0.][ 0.  1. -2.]]
标准化后的数据:[[ 0.70710678 -1.22474487  1.22474487][ 0.70710678  0.          0.        ][-1.41421356  1.22474487 -1.22474487]]
#StandarScaler()方法数据标准化示例。
import numpy as np
from sklearn import preprocessing
X = np.array([[2.,-1.,2.],[ 2.,0.,0.],[0.,1.,-2.]])
#求得训练集X的均值,方差,最大值,最小值等固有属性
scaler = preprocessing.StandardScaler().fit(X) 
#在fit的基础上,进行标准化,降维,归一化等操作
xs=scaler.transform(X) 
print("标准化前的数据:\n",X)
print("标准化后的数据:\n",xs)
标准化前的数据:[[ 2. -1.  2.][ 2.  0.  0.][ 0.  1. -2.]]
标准化后的数据:[[ 0.70710678 -1.22474487  1.22474487][ 0.70710678  0.          0.        ][-1.41421356  1.22474487 -1.22474487]]

2. 极差标准化方法

极差标准化也称为区间缩放法或称0-1标准化,它是对原始数据所做的一种线性变换,将原始数据映射到[0,1]区间。常用形式为:
y i j = x i j − m i n { x i j } m a x { x i j } − m i n { x i j } y_{ij}=\frac{x_{ij}-min\{x_{ij}\}}{max\{x_{ij}\}-min\{x_{ij}\}} yij=max{xij}min{xij}xijmin{xij}
其中 m i n { x i j } min\{x_{ij}\} min{xij} m a x { x i j } max\{x_{ij}\} max{xij}指的是和 x i j x_{ij} xij同一数据集的最小值和最大值。极差标准化的方法有自定义和 MaxMinScaler() 等方法.

#极差标准化自定义方法示例。
def my_scale(data):data = (data-data.min())/(data.max()-data.min())return data
import numpy as np
X = np.array([[2.,-1.,2.],[ 2.,0.,0.],[0.,1.,-2.]])
xs=my_scale(X)
print("标准化前的数据:\n",X)
print("标准化后的数据:\n",xs)
标准化前的数据:[[ 2. -1.  2.][ 2.  0.  0.][ 0.  1. -2.]]
标准化后的数据:[[1.   0.25 1.  ][1.   0.5  0.5 ][0.5  0.75 0.  ]]
# MinMaxScaler()方法数据标准化示例。
import numpy as np
from sklearn import preprocessing
X = np.array([[2.,-1.,2.],[ 2.,0.,0.],[0.,1.,-2.]])
minmaxsacler = preprocessing.MinMaxScaler()
minmaxsacler.fit(X)
xs=minmaxsacler.transform(X) 
print("标准化前的数据:\n",X)
print("标准化后的数据:\n",xs)
标准化前的数据:[[ 2. -1.  2.][ 2.  0.  0.][ 0.  1. -2.]]
标准化后的数据:[[1.  0.  1. ][1.  0.5 0.5][0.  1.  0. ]]

3. 最大绝对值标准化方法

最大绝对值标准化方法是 x i j x_{ij} xij除以其最大的绝对值,也就是将原始数据映射到[-1,1]区间内。常用形式为:
y i j = x i j m a x { ∣ x i j ∣ } y_{ij}=\frac{x_{ij}}{max\{|x_{ij}|\}} yij=max{xij}xij

# 使用MaxAbsScaler()方法进行数据标准化示例。
import numpy as np
from sklearn import preprocessing
X1 = np.array([[2.,-1.,2.],[ 2.,0.,0.],[0.,1.,-2.]])
abssacler = preprocessing.MaxAbsScaler()
abssacler.fit(X1)
xs=abssacler.transform(X) 
print("标准化前的数据:\n",X)
print("标准化后的数据:\n",xs)
标准化前的数据:[[ 2. -1.  2.][ 2.  0.  0.][ 0.  1. -2.]]
标准化后的数据:[[ 1. -1.  1.][ 1.  0.  0.][ 0.  1. -1.]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15:00面试,15:06就出来了,问的问题有点变态了

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到3月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降30%…

PTA L2-032 彩虹瓶

彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工…

项目管理-需求分析

项目需求分析是项目管理中非常重要的一环,它涉及到对项目目标的理解、项目范围的界定、项目需求的收集、分析和整理。以下是项目需求分析的一般步骤: 1. 确定项目目标:明确项目的目的和预期成果,确保项目团队对项目目标有共同的认…

基于cnn卷积神经网络的yolov8动物姿态估计识别(训练代码)

往期热门项目大合集: 人体姿态识别(教程代码)-CSDN博客 3D人体姿态估计(教程代码)-CSDN博客 3D目标检测(教程代码)_3d目标检测原理-CSDN博客 交通路标识别(教程&代码)_路标识别项目概述…

【c++】类和对象(二)this指针

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本节内容来到类和对象第二篇,本篇文章会带领大家了解this指针 目录 1.this指针1.1this指针的引出1.2this指针的特性1.3思考题1.4C语言和C实现Stack的对…

解析option设计模式

解析option设计模式 一、背景二、应用demo三、Gin中的应用 一、背景 有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可。因此选项设计模式顾名思义,就是在…

Redis 缓存穿透是什么?如何缓解缓存穿透?

缓存穿透是指在使用缓存技术时,恶意或无效的请求无法从缓存中获取到数据,从而直接落到底层存储系统(如数据库)上,导致频繁地查询底层存储系统,增加系统负载并降低性能。 缓存通常用于存储经常被请求的数据…

QB 系统配置模板

查询的时候,直接 在下面添加 一个字段就行! public function getDeatil(){$post $this->request->post();if(!isset($post[id])){return out(请传递活动的id);}$builder new Builder($this->getModel());$builder->setFilter([id > …

轨迹预测后处理之非极大值抑制(NMS)

非极大值抑制是图像处理里面的一种算法(比如边缘检测会使用到) 轨迹预测这里借鉴了其思想,比如说对于某个场景中的某辆车,我们使用模型预测 64 条轨迹或者更多,以很好地捕获多模态性,同时每条轨迹对应一个…

看似简单的SQL,实则就是简单

加班遇到一个SQL问题,本想把别人的SQL改下成SparkSQL,在YARN上运行,然而数据一直对不上。 原SQL ⚠️说明:a.id,b.id没有空的,数据1:1,b.name可能存在空的 select a.id,b.id,b.name from tab…

机器学习方法

机器学习是人工智能(AI)的一个分支,它使计算机系统能够从数据中学习并改进其性能,而无需进行明确的编程。机器学习的核心是开发算法,这些算法可以从大量数据中识别模式,并用这些模式来做出预测或决策&#…

MySQL数据库的备份

文章目录 MySQL数据库的备份MySQL备份方法完全备份物理备份备份 逻辑热备完全备份逻辑热备恢复恢复库恢复表 增量备份备份增量备份恢复基于位置进行恢复基于时间 MySQL数据库的备份 MySQL备份方法 物理备份: 物理备份涉及直接复制MySQL的数据文件和日志文件。这种…

Javascript中的严格模式 “use strict“

一、为什么使用严格模式? 在普通的 JavaScript 中,写错变量名会创建新的全局变量, 在严格模式中,写错变量名会抛出错误来提醒开发者 二、声明严格模式 通过在脚本或函数的开头添加 “use strict”; 来声明严格模式。"use …

FANUC机器人某个轴编码器损坏时进行单轴零点标定的具体方法

FANUC机器人某个轴编码器损坏时进行单轴零点标定的具体方法 前提: FANUC机器人编码器或其线路有损坏,一般先将机器人移动至零点位置,编码器相关部件更换完毕后,直接进行零点标定即可。但是对于突发的状况,这种方法显然是不行的,比如在生产过程中突然发生碰撞导致编码器相…

暴雨讲堂:AI时代第五代英特尔CPU能做什么?

如果把科技圈比作娱乐圈,那么这两年的顶流一定是AI。2023年,世人见证了ChatGPT在全球范围内的大火,以生成式AI为代表的新一轮人工智能应用问世,改变了人工智能(AI)技术与应用的发展轨迹,并开始在…

Rancher(v2.6.3)——Rancher部署Nacos(单机版)

Rancher部署Nacos详细说明文档:https://gitee.com/WilliamWangmy/snail-knowledge/blob/master/Rancher/Rancher%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md#5rancher%E9%83%A8%E7%BD%B2nacos ps:如果觉得作者写的还行,能够满足您的需求&#x…

Android AIDL编译 程序包 .aidl 不存在

错误: 程序包 aidl 不存在 本文仅针对 AGP 8.0 android gradle plugin 以上 buildFeatures {aidl true } 在模块gradle android { }中增加. 详见: https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes?hlzh-cn#default-changes

什么是进程

目录 一. 进程的概念二. 进程的组成三. 进程的特征四. 进程的状态与转换4.1 进程的状态4.2 进程状态的转换4.3 进程的组织方式 五. 进程控制5.1 进程控制5.2 进程创建 六. 进程之间的通信6.1 共享存储6.2 消息传递 \quad 一. 进程的概念 \quad 思考:操作系统是这些进程的管理者…

面试算法-110-课程表

题目 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

【分布式websocket】表情怎么做?自制表情包和Unicode表情符号区别?表情编解码?【20期】

前言 表情包是聊天系统中一个比较常见的功能。常见的表情表分为两种是类型。 一种是Unicode表情,另外一种是图片表情。我们这篇文章两种都会涉及。 图片类表情包会涉及到编解码。不会将发送消息的图片的url地址也一并存入数据库中。 文章将会从表情分类。表情编解码…