首页 > 其他分享 >数据清洗:归一化和标准化的关键步骤

数据清洗:归一化和标准化的关键步骤

时间:2024-01-08 13:34:29浏览次数:31  
标签:关键步骤 特征 data 标准化 归一化 np 清洗 数据


1.背景介绍

数据清洗是数据预处理的重要环节,它涉及到数据的质量检查、噪声去除、缺失值处理、数据类型转换、数据归一化和标准化等多种操作。在机器学习和人工智能领域,数据清洗是一个至关重要的环节,因为数据质量直接影响模型的性能。在这篇文章中,我们将主要关注数据归一化和标准化的关键步骤,探讨它们的核心概念、算法原理、具体操作步骤以及数学模型公式。

2.核心概念与联系

2.1 数据归一化

数据归一化是将数据映射到一个有限的范围内,通常是[0, 1],以规范化数据的分布。归一化可以减少特征之间的差异,使得各特征对模型的贡献相等,从而提高模型的性能。常见的归一化方法有:

  • 均值归一化:将数据集中化,使数据集的平均值为0。
  • 标准化:将数据标准化到标准正态分布,使数据的方差为1。
  • 最小-最大规范化:将数据映射到[0, 1]范围内,使最小值为0,最大值为1。

2.2 数据标准化

数据标准化是将数据映射到一个固定的范围内,通常是[-1, 1],以规范化数据的分布。标准化可以减少特征之间的差异,使得各特征对模型的贡献相等,从而提高模型的性能。常见的标准化方法有:

  • Z-分数标准化:将数据标准化到标准正态分布,使数据的均值为0,方差为1。
  • 最小-最大规范化:将数据映射到[-1, 1]范围内,使最小值为-1,最大值为1。

3.核心算法原理和具体操作步骤以及数学模型公式详细讲解

3.1 均值归一化

3.1.1 算法原理

均值归一化是将数据集中化,使数据集的平均值为0。这样可以减轻因不同平均值导致的特征比较不公平的情况。

3.1.2 具体操作步骤

  1. 计算每个特征的平均值。
  2. 将每个特征的值减去其平均值。

3.1.3 数学模型公式

对于一个特征X,其均值为: $$ \bar{X} = \frac{1}{n} \sum_{i=1}^{n} x_i $$ 将每个特征的值减去其平均值: $$ x'_i = x_i - \bar{X} $$ 其中,$x'_i$ 是归一化后的值。

3.2 标准化

3.2.1 算法原理

标准化是将数据标准化到标准正态分布,使数据的均值为0,方差为1。这样可以减轻因不同方差导致的特征比较不公平的情况。

3.2.2 具体操作步骤

  1. 计算每个特征的均值和方差。
  2. 将每个特征的值减去其均值。
  3. 将每个特征的值除以其方差的平方根。

3.2.3 数学模型公式

对于一个特征X,其均值和方差分别为: $$ \bar{X} = \frac{1}{n} \sum_{i=1}^{n} x_i $$ $$ \sigma_X^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \bar{X})^2 $$ 将每个特征的值减去其均值: $$ x'_i = x_i - \bar{X} $$ 将每个特征的值除以其方差的平方根: $$ x''_i = \frac{x'_i}{\sigma_X} $$ 其中,$x''_i$ 是标准化后的值。

3.3 最小-最大规范化

3.3.1 算法原理

最小-最大规范化是将数据映射到[0, 1]范围内,使最小值为0,最大值为1。这样可以减轻因不同范围导致的特征比较不公平的情况。

3.3.2 具体操作步骤

  1. 计算每个特征的最小值和最大值。
  2. 将每个特征的值除以其最大值。

3.3.3 数学模型公式

对于一个特征X,其最小值和最大值分别为: $$ x_{min} = \min_{1 \leq i \leq n} x_i $$ $$ x_{max} = \max_{1 \leq i \leq n} x_i $$ 将每个特征的值除以其最大值: $$ x'i = \frac{x_i - x{min}}{x_{max} - x_{min}} $$ 其中,$x'_i$ 是最小-最大规范化后的值。

4.具体代码实例和详细解释说明

4.1 均值归一化代码实例

import numpy as np

# 原始数据
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 计算每个特征的平均值
mean = np.mean(data, axis=0)

# 将每个特征的值减去其平均值
normalized_data = data - mean

print(normalized_data)

4.2 标准化代码实例

import numpy as np

# 原始数据
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 计算每个特征的均值和方差
mean = np.mean(data, axis=0)
var = np.var(data, axis=0)

# 将每个特征的值减去其均值
normalized_data = data - mean

# 将每个特征的值除以其方差的平方根
standardized_data = normalized_data / np.sqrt(var)

print(standardized_data)

4.3 最小-最大规范化代码实例

import numpy as np

# 原始数据
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 计算每个特征的最小值和最大值
min_val = np.min(data, axis=0)
max_val = np.max(data, axis=0)

# 将每个特征的值除以其最大值
normalized_data = (data - min_val) / (max_val - min_val)

print(normalized_data)

5.未来发展趋势与挑战

随着数据规模的增加,数据清洗的重要性将更加明显。未来的挑战包括:

  • 如何有效地处理高维数据和海量数据?
  • 如何自动检测和处理缺失值、噪声和异常值?
  • 如何在保持数据质量的同时,尽量减少数据丢失的风险?
  • 如何在不同领域的应用中,根据具体需求进行定制化的数据清洗?

6.附录常见问题与解答

Q1:为什么需要数据归一化和标准化? A1:数据归一化和标准化可以减轻特征之间的差异,使各特征对模型的贡献相等,从而提高模型的性能。

Q2:归一化和标准化有什么区别? A2:归一化将数据映射到一个有限的范围内,通常是[0, 1],标准化将数据映射到一个固定的范围内,通常是[-1, 1]。

Q3:如何选择适合的归一化和标准化方法? A3:选择适合的归一化和标准化方法需要根据数据的特点和问题的需求来决定。常见的方法有均值归一化、标准化、最小-最大规范化等。

Q4:归一化和标准化会改变数据的分布吗? A4:归一化和标准化会改变数据的分布,使其更加接近正态分布。

Q5:归一化和标准化会改变数据的原始意义吗? A5:归一化和标准化会改变数据的原始意义,因为数据被映射到了另一个范围内。

Q6:如何处理缺失值和异常值? A6:缺失值可以通过删除、填充均值、填充中位数、填充最大值、填充最小值、使用模型预测等方法处理。异常值可以通过统计方法(如Z分数测试、IQR方法等)或机器学习方法(如Isolation Forest、AutoEncoder等)来检测和处理。


标签:关键步骤,特征,data,标准化,归一化,np,清洗,数据
From: https://blog.51cto.com/universsky/9142431

相关文章

  • Python Pandas 数据清洗
    ​ 1、处理缺失数据处理缺失数据是数据清洗过程的一个重要部分。缺失数据可以以多种方式出现,最常见的是作为NaN(NotaNumber)。处理缺失数据涉及使用 isna() 或 isnull() 检测缺失值,fillna() 填充缺失值,dropna() 删除包含缺失值的行或列,以及 interpolate() 对缺失值进......
  • 企业内训系统源码剖析:开发企业培训平台的关键步骤
    深入剖析其源码可以帮助我们更好地理解系统的内在机制。本文将探讨开发企业内训系统的关键步骤,并通过源码剖析的方式深入了解其技术实现。 一、需求分析与规划开发团队需要与企业管理层和培训负责人密切合作,明确系统所需功能、性能、安全性等方面的要求。二、技术选型与架构设计选......
  • pageoffice 5.x升级到pageoffice 6.x的关键步骤
    Vue+Springboot前后端分离项目将后端Springboot项目中pom.xml文件中对于pageoffice的jar引用升级成6.0版本,以maven中央仓库(https://mvnrepository.com/artifact/com.zhuozhengsoft/pageoffice)最新版本为准,比如6.0.0.9-javax。<dependency><groupId>com.zhuozhengsoft</gr......
  • 神经网络优化篇:详解归一化输入(Normalizing inputs)
    归一化输入训练神经网络,其中一个加速训练的方法就是归一化输入。假设一个训练集有两个特征,输入特征为2维,归一化需要两个步骤:零均值归一化方差;希望无论是训练集和测试集都是通过相同的\(μ\)和\(σ^2\)定义的数据转换,这两个是由训练集得出来的。第一步是零均值化,\(\mu......
  • 归一化方法-Z-score
    归一化方法-Z-scoreZ-score定义z-score精确测量偏离数据点均值的标准差数。公式如下:\(z=\frac{data\point-mean}{standard\deviation}\),标准数学公式为:\(z=\frac{x-\mu}{\sigma}\)几个z-score相关的重要性质:z-score如果是正值,说明数据点高于均值;z-score如果是......
  • 【Python&RS】基于Python对栅格数据进行归一化(统一量纲至0~1)
            有段时间没有更新Python处理栅格、矢量数据了,一部分是因为之前基本上已经把如何使用Python处理地理数据的方法覆盖完了,另一部分是因为最近有其他方面的知识需要学习和巩固。也是赶巧,最近有个项目需要构建模型对影像进行反演需要用到归一化,所以就编了一段代码,今......
  • 深度学习原理与实战:批量归一化(Batch Normalization)的理解
    1.背景介绍深度学习是近年来最热门的人工智能领域之一,它是一种通过多层神经网络来处理大量数据并从中学习模式的技术。深度学习的一个主要挑战是训练深层网络的难度,这是因为深层网络容易受到梯度消失或梯度爆炸的影响。在深度学习中,神经网络的输入通常是从数据集中抽取的特征,这些特......
  • 构建安全可靠的软件定制开发环境:关键步骤与最佳实践
    随着信息技术的飞速发展,软件开发已经成为各行各业不可或缺的一部分。然而,随着软件应用的普及,安全问题也日益凸显。从个人隐私泄露到企业数据泄露,恶意软件感染,这些安全问题不仅给用户带来损失,也给企业带来巨大的风险。因此,构建安全可靠的开发软件成为了保障用户数据安全、提升软件质......
  • Fine-Tuning: 精调大模型训练的关键步骤
    在LLM大模型训练的第三个步骤中,我们将探讨指令精调(SuperviserFine-Tuning)的重要性,以及如何利用中文指令语料库进行训练和无监督学习的应用。一、指令精调(SuperviserFine-Tuning)指令精调是一种训练LLM大模型的优化方法,旨在提高模型对于特定任务的性能。该方法的核心思想是将预训练......
  • LayerNorm 等其他归一化
    LayerNorm等其他归一化目录LayerNorm等其他归一化总览BatchNormLayerNorm计算过程LN优缺点用法上的差异transformer为什么使用layernormInstanceNorma,INGroupNorma,GNBNLNINGN的区别参考资料:总览BatchNorm:沿batch方向上,对(N、H、W)做归一化,保留通道C的维度......