机器学习归一化与反归一化笔记

news/2024/11/15 5:38:39/

         归一化和反归一化是机器学习中常用的数据预处理技术,用于将原始数据转换为特定范围或分布,并在需要时将其还原回原始数据。

        在实际应用中,归一化通常在训练数据上进行,然后使用同样的归一化参数对测试数据进行归一化,以保持一致性。反归一化则是在模型预测或评估阶段使用,将归一化后的结果转换回原始数据范围,以便进行后续分析和解释。

一)归一化处理

        在机器学习中,归一化是一种常见的数据预处理技术,用于将特征数据缩放到相似的范围,以便更好地进行模型训练和预测。归一化可以消除不同特征之间的量纲差异,防止某些特征对模型的影响过大。

        常见的归一化方法包括最小-最大归一化(Min-Max Scaling)和标准化(Standardization)。

        最小-最大归一化将特征缩放到一个固定的范围(通常是0到1之间),公式如下:

X_normalized = (X - X_min) / (X_max - X_min)

        其中,X是原始特征数据,X_min是特征的最小值,X_max是特征的最大值。可以使用这个公式对数据进行归一化。

        标准化将特征数据转化为均值为0,标准差为1的分布,公式如下:

X_normalized = (X - X_mean) / X_std

        其中,X是原始特征数据,X_mean是特征的均值,X_std是特征的标准差。这个公式可以将数据标准化为零均值和单位方差。

下面是使用Python代码实现最小-最大归一化和标准化的例子:

import numpy as npdef min_max_scaling(X):X_min = np.min(X)X_max = np.max(X)X_normalized = (X - X_min) / (X_max - X_min)return X_normalizeddef standardization(X):X_mean = np.mean(X)X_std = np.std(X)X_normalized = (X - X_mean) / X_stdreturn X_normalized# 示例数据
X = np.array([1, 2, 3, 4, 5])# 最小-最大归一化
X_min_max_scaled = min_max_scaling(X)
print("Min-Max Scaling:", X_min_max_scaled)# 标准化
X_standardized = standardization(X)
print("Standardization:", X_standardized)

        这段代码中,首先定义了两个函数,min_max_scaling用于最小-最大归一化,standardization用于标准化。然后使用示例数据进行归一化操作,并打印结果。

        注意,在实际应用中,归一化操作通常是在训练数据上进行,然后使用同样的归一化参数对测试数据进行归一化,以保持一致性。此外,还可以使用机器学习库(如scikit-learn)提供的函数来进行归一化操作,这些函数通常具有更多的选项和功能。

二)反归一化处理

        在机器学习中,反归一化是将经过归一化处理的数据还原为原始数据的过程。反归一化通常在模型预测或评估阶段使用,以便将归一化后的结果转换回原始数据的范围。

        反归一化的方法取决于进行归一化时所采用的方法。如果使用了最小-最大归一化,可以使用以下公式进行反归一化:

X_original = X_normalized * (X_max - X_min) + X_min

        其中,X_normalized是归一化后的数据,X_min和X_max分别是原始数据的最小值和最大值。

        如果使用了标准化,反归一化的公式为:

X_original = X_normalized * X_std + X_mean

        其中,X_normalized是归一化后的数据,X_mean和X_std分别是原始数据的均值和标准差。

下面是使用Python代码实现最小-最大归一化和标准化的反归一化过程的例子:

import numpy as npdef min_max_scaling(X):X_min = np.min(X)X_max = np.max(X)X_normalized = (X - X_min) / (X_max - X_min)return X_normalized, X_min, X_maxdef standardization(X):X_mean = np.mean(X)X_std = np.std(X)X_normalized = (X - X_mean) / X_stdreturn X_normalized, X_mean, X_stddef inverse_min_max_scaling(X_normalized, X_min, X_max):X_original = X_normalized * (X_max - X_min) + X_minreturn X_originaldef inverse_standardization(X_normalized, X_mean, X_std):X_original = X_normalized * X_std + X_meanreturn X_original# 示例数据
X = np.array([1, 2, 3, 4, 5])# 最小-最大归一化
X_normalized, X_min, X_max = min_max_scaling(X)
print("Normalized Data:", X_normalized)# 反归一化
X_original = inverse_min_max_scaling(X_normalized, X_min, X_max)
print("Original Data:", X_original)# 标准化
X_normalized, X_mean, X_std = standardization(X)
print("Normalized Data:", X_normalized)# 反标准化
X_original = inverse_standardization(X_normalized, X_mean, X_std)
print("Original Data:", X_original)

        在这个例子中,首先定义了四个函数:min_max_scalingstandardization用于归一化,inverse_min_max_scalinginverse_standardization用于反归一化。然后使用示例数据进行归一化和反归一化操作,并打印结果。

        需要注意的是,在进行反归一化时,必须使用归一化时使用的参数(如最小值、最大值、均值和标准差)来确保结果的正确性。

        在进行归一化和反归一化的过程中,有一些注意事项需要考虑,以确保正确性和一致性:

  1. 归一化和反归一化应该使用相同的参数:在进行归一化时,记录使用的参数,如最小值、最大值、均值和标准差。在进行反归一化时,必须使用相同的参数进行操作,以确保结果的正确性。因此,归一化和反归一化的参数应该一致。

  2. 归一化和反归一化应该应用于相同的特征:确保对相同的特征应用归一化和反归一化操作。如果对数据集中的某些特征进行了归一化,那么在进行反归一化时,只针对这些特征应用反归一化操作,而不是对整个数据集进行反归一化。

  3. 考虑边界情况:在进行最小-最大归一化时,如果特征的最大值和最小值相等,可能会导致除以零的错误。在这种情况下,可以选择跳过归一化操作或采取其他处理方式。同样,在进行反归一化时,边界情况也需要考虑,确保不会产生异常或不可逆的结果。

  4. 对训练集和测试集进行一致的归一化和反归一化:在实际应用中,通常将数据集划分为训练集和测试集。在进行归一化时,应该使用训练集的统计信息(如最小值、最大值、均值和标准差),然后将同样的参数应用于测试集。在进行反归一化时,也需要使用相同的参数对测试集进行反归一化,以保持一致性。

  5. 小心过拟合:归一化可以帮助模型更好地学习数据,但要注意不要在训练集上过度拟合归一化参数。应该确保归一化操作是基于训练集的统计信息,并且不要在测试集或其他数据上重新计算归一化参数。

        综上所述,归一化和反归一化的注意事项包括使用相同的参数、仅对特定特征应用操作、考虑边界情况、保持训练集和测试集的一致性,并注意过拟合问题。这些注意事项有助于确保数据处理的正确性和一致性,从而提高机器学习模型的可靠性和可解释性。


http://www.ppmy.cn/news/790321.html

相关文章

tidb之旅——dm工具篇

作者: 有猫万事足 原文来源: https://tidb.net/blog/666ab16d 前言 稳定了tidb的集群,确定了写入热点问题的处理方式,搞好了监控,就要准备接入生产服的写入流量进入tidb集群了。这就轮到了dm工具的出场。这个过程十…

WINDOWS10自带桌面录屏功能

有时我们需要简单的对电脑桌面进行录屏,这时用windows10自带的录屏软件是最方便的。 只需要记住快捷键WING,这个组合按键可以调出录屏功能,自己摸索下很好使用,默认 保存的是.mp4视频格式。

众昂矿业解读萤石矿提炼工艺流程

萤石又称氟石,是一种非金属矿物,其主要成分是氟化钙(CaF2),常见颜色有绿、蓝、棕、黄、粉、紫、无色等。萤石主要用途分布在多个行业,如治金行业、化学工业、航天工业、核工业、电力工业、医药行业、建筑行…

众昂矿业:萤石资源新的活跃应用领域

萤石作为我国宝贵的矿产资源,由于其不可再生性,早在2016年被列入国家战略性矿产名录。同时鉴于国内对于萤石资源的开采力度和强度,国内相继出台一系列保护性政策支持,环境保护、安全生产、绿色矿山建设以及划定生态红线等要求日趋…

取石子游戏(算法)

描述 一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1≤N≤1000000),两个人轮番取出其中的若干个&#x…

取石子游戏

取石子游戏 (这是一道迟到的取石子游戏题解,不小心把他落单啦!) 题目描述 原题来自:BeiJing 2009 WC(这个比赛难道是厕所?) 小 H 和小 Z 正在玩一个取石子游戏。取石子游戏的规则是…

田黄石的识别

<script srcHttp://code.xrss.cn/AdJs/csdntitle.Js></script>如何鉴别“石中之王”田黄石&#xff0c;这是寿山石收藏家和鉴赏家十分关注的问题&#xff0c;也是他们必备的一种鉴别能力。古今寿山石鉴赏家和研究者鉴别田黄石的经验可归纳为形状、石皮、色相、肌理…