数据变换-归一化与标准化

如题所述

第1个回答  2022-07-08

一般在机器学习的 模型训练 之前,有一个比较重要的步骤是 数据变换

因为,一般情况下,原始数据的各个特征的值并不在一个统一的范围内,这样数据之间就没有 可比性

数据变换的目的是 将不同渠道,不同量级的数据转化到统一的范围之内,方便后续的分析处理

数据变换的方法有很多,比如 数据平滑,数据聚集,数据概化,数据规范化 属性构造 等。

本篇文章主要介绍数据规范化,这是一种比较常用,也比较简单的方法。

数据规范化是 使属性数据按比例缩放,这样就将原来的数值映射到一个新的特定区域中 ,包括 归一化,标准化 等。

归一化就是获取原始数据的最大值和最小值,然后把原始值线性变换到 [0,1] 范围之内,变换公式为:

其中:

从公式中可以看出,归一化与最大最小值有关,这也是归一化的缺点,因为最大值与最小值非常容易受 噪音数据 的影响。

比如,我们有以下数据:

通过数据可以观察出:

这里我们用第一条数据来举例,看看是如何变换的。

sklearn 库的 preprocessing 模块中的 MinMaxScaler 类就是用来做归一化处理的。

首先引入 MinMaxScaler 类:

准备要变换的 data 数据,并初始化 MinMaxScaler 对象:

拟合数据:

输出每个特征的最大最小值:

变换所有数据:

可以对比我们计算的第一行数据,结果是一样的。

z-score 标准化 是基于正态分布的,该方法假设数据呈现 标准正态分布

正态分布也叫高斯分布 ,是 连续随机变量 概率分布的一种,它的数学公式是:

其中, u 均值 (平均数), σ 标准差 。均值和标准差是正态分布的关键参数,它们会决定分布的具体形态。

正态分布有以下特点:

正态分布就是常态分布,正常状态的分布。在现实生活中,大量随机现象的数据分布都近似于正态分布。

正态分布的分布图为:

μ 0 σ 1 时,正态分布为 标准正态分布

图中的百分数表示所在面积占总面积的百分比。

z-score 标准化 利用正态分布的特点, 计算一个给定分数距离平均数有多少个标准差 。它的转换公式如下:

其中 x 为原始值, u 为均值, σ 为标准差, x’ 是变换后的值。

经过 z-score 标准化 后,高于平均数的分数会得到一个正的标准分,而低于平均数的分数会得到一个负的标准分数。

和归一化相比, z-score 标准化 不容易受到噪音数据的影响,并且保留了各维特征对目标函数的影响权重。

sklearn 库的 preprocessing 模块中的 StandardScaler 类就是用来做 z-score 标准化 处理的。

首先引入 StandardScaler 类:

准备要变换的 data 数据,并初始化 StandardScaler 对象:

拟合数据:

输出每个特征的均值和标准差:

变换所有数据:

数据变换的目的是 将不同渠道,不同量级的数据转化到统一的范围之内,方便后续的分析处理

不同的机器学习算法,对数据有不同的要求,所以要针对不同的算法,对原始数据进行不同的转换。

数据规范化 是常用的数据变化方法,包括归一化和标准化等:

数据变换不一定能提高模型的准确度,但是会提高数据的可解释性。

需要注意的是,对训练数据进行了数据变换之后,在测试模型准确度或者预测数据之前,也要对数据进行同样的数据变换。

(本节完。)

推荐阅读:

决策树算法-理论篇-如何计算信息纯度
决策树算法-实战篇-鸢尾花及波士顿房价预测
朴素贝叶斯分类-理论篇-如何通过概率解决分类问题
朴素贝叶斯分类-实战篇-如何进行文本分类
计算机如何理解事物的相关性-文档的相似度判断

相似回答