机器学习特性缩放的介绍,什么时候为什么使用

简介: 机器学习特性缩放的介绍,什么时候为什么使用

在这篇文章中,我们将讨论什么是特征缩放以及为什么我们在机器学习中需要特征缩放。我们还将讨论数据的标准化,以及使用scikit-learn实现同样的标准化。

640.png

什么是特性缩放?

特征缩放是对输入数据进行标准化/规范化所需要的重要预处理之一。当每一列的值范围非常不同时,我们需要将它们扩展到公共级别。这些值重新规划成公共水平,然后我们可以对输入数据应用进一步的机器学习算法。

我们有不同的特征,其中一个特征的数据可能以公里表示,另一列的数据可能以米表示,最后一列的数据可能以厘米表示。在将算法应用到数据上之前,首先需要将数据放到“米”、“公里”或“厘米”的公共尺度上进行有效的分析和预测。

缩放前输入数据

640.png

在上面的数据集中,我们可以看到列1和列2中的值有非常不同的范围。第一列值表示年龄在30到90岁之间,而工资值在30000到15000之间变化。所以两列值的比例是截然不同的。在进一步分析之前,我们需要将其调整到相同的范围。

缩放后的输出

缩放值的一种方法是将所有列的值从0到1或者我们可以将它们的值放在-3到3之间。将值更新到新的范围的过程通常称为Normalization 或 Standardization.。

下面是标准缩放后的数据输出。从数据中可以看出,所有的值都在-3到3之间。

640.png

数据标准化后的数据如下。可以看出,年龄和薪水的数据介于0到1之间。

640.png

为什么我们需要特征缩放?

640.png

要获得正确的预测和结果,就需要特征缩放。如果某一列的值与其他列相比非常高,则具有更高值的列的影响将比其他低值列的影响高得多。高强度的特征比低强度的特征重得多,即使它们在确定输出中更为关键。因此,预测可能无法给出预期的结果,并且可能无法满足业务用例。

机器学习算法也可能对范围较小的列不敏感,并可能导致不一致

总而言之,功能缩放是必需的,因为:

  1. 回归系数直接受特征范围的影响
  2. 具有较高比例的功能比具有较低比例的功能更重要
  3. 如果我们具有缩放值,则可以轻松实现渐变下降
  4. 如果按比例缩放,某些算法将减少执行时间。
  5. 一些算法基于欧几里得距离,欧几里得距离对特征尺度非常敏感。

不同的特征缩放技术

我们可以使用不同的缩放技术来缩放输入数据集。我们可以应用以下任一方法:

Normalization 或 Standardization

什么是归一化(Normalization )?

归一化是在0到1之间缩放要素值归一化。这称为最小-最大缩放。

640.png

在上式中:

  • Xmax和Xmin是功能列的最大值和最小值
  • X的值始终在最小值和最大值之间

使用Scikit Learn进行数据归一化

以下是使用Scikit Learn进行归一化的简单实现。

importpandasimportnumpyasnpdataset=pandas.read_csv("./data/FirstDataset.csv")
X=dataset.iloc[:, :].valuesfromsklearn.preprocessingimportMinMaxScalernorm=MinMaxScaler()
X[:, 1:3] =norm.fit_transform(X[:, 1:3])
print(X)

什么是机器学习的标准化?

标准化基于标准偏差。它衡量功能中价值的传播。这是最常用的之一。

640.png

在标准缩放过程中,我们将特征的均值偏移为0,标准偏差为1。应用标准缩放器时,我们获得的值在-3到3范围内

640.png

当对特征值应用标准偏差时,特征集中值的99.7%介于-3 SD(标准偏差)至3 SD(标准偏差)之间。

640.png

让我们看一下示例:

640.png

在上述情况下,值在-3到3之间标准化,因此减小了数据列中值的范围。缩放这些值后,可以将其输入到机器学习算法进行进一步分析。

importpandasimportnumpyasnpdataset=pandas.read_csv("./data/FirstDataset.csv")
X=dataset.iloc[:, :].valuesfromsklearn.preprocessingimportStandardScalernorm=StandardScaler()
X[:, 1:3] =norm.fit_transform(X[:, 1:3])
print(X)
在Scikit-Learn中应用StandardScaler

当数据遵循高斯曲线时,我们可以应用标准缩放器。如果数据遵循高斯曲线,则标准偏差变得易于计算且有效,并且在预测时会给出出色的结果。

对特征缩放敏感的算法

下面给出了一些对特征缩放非常敏感的算法。这些算法对特征缩放很敏感,因为它们取决于距离和高斯曲线。

  • 线性和逻辑回归
  • 神经网络
  • 支持向量机
  • K均值聚类
  • K最近邻居
  • 主成分分析

对特征缩放不敏感的算法

对特征缩放不敏感的算法通常是“基于树的”算法

  • 分类和回归树
  • 森林随机回归

标准化和归一化

这些关键字经常可互换使用。虽然归一化是在0到1之间缩放值,但是标准化大约是将平均值设为0,将标准偏差设为1。在确定我们需要标准化还是归一化时,需要考虑一些要点。

  • 当数据代表高斯曲线时,可以使用标准化
  • 标准化不受异常值的影响。
  • 归一化对异常值的影响很高
  • 非高斯曲线表示时的归一化效果很好
目录
相关文章
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习中的图像风格迁移
【9月更文挑战第26天】本文将探讨如何利用深度学习技术,实现图像风格的转换。我们将从基础的理论出发,然后逐步深入到具体的实现过程,最后通过代码实例来展示这一技术的实际应用。无论你是初学者还是有经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起探索深度学习的奥秘吧!
|
6月前
|
机器学习/深度学习 算法 计算机视觉
利用深度学习技术实现图像风格迁移
本文将介绍如何利用深度学习技术中的卷积神经网络,结合风格迁移算法,实现图像风格的转换。通过对图像内容和风格的理解,深度学习模型可以生成具有新风格的图像,为图像处理领域带来了新的可能性。
126 12
|
6月前
|
机器学习/深度学习 算法 计算机视觉
利用深度学习技术实现自动图像风格转换
本文将介绍如何利用深度学习技术中的神经网络结构,例如卷积神经网络和生成对抗网络,来实现自动图像风格转换。通过对图像特征的提取和风格迁移算法的应用,我们可以实现将一幅图像的风格转换为另一幅图像的艺术效果,为图像处理领域带来全新的可能性。
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习实现图像风格迁移
【8月更文挑战第73天】本文通过深入浅出的方式,介绍了一种使用深度学习技术进行图像风格迁移的方法。我们将探讨如何将一张普通照片转化为具有著名画作风格的艺术作品。文章不仅解释了背后的技术原理,还提供了一个实际的代码示例,帮助读者理解如何实现这一过程。
|
4月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:图像风格迁移与生成
【7月更文挑战第13天】 使用Python实现深度学习模型:图像风格迁移与生成
49 2
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
6月前
|
机器学习/深度学习 算法 搜索推荐
基于深度学习的图像风格转换技术
【5月更文挑战第31天】 在数字图像处理领域,风格转换技术已从传统算法演变至以深度学习为核心的智能化方法。本文深入探讨了基于卷积神经网络(CNN)的图像风格转换技术,分析了其核心原理、关键技术及应用前景。通过引入感知损失与风格损失的概念,实现了图像内容与风格的解耦和重组,使得源图像能够获得目标风格特征。此外,文章还讨论了目前技术面临的主要挑战,包括风格迁移的精度、效率以及多样化问题,并提出了潜在的改进方向。
|
6月前
|
机器学习/深度学习 算法 计算机视觉
利用深度学习算法实现图像风格转换技术探究
本文将通过深入分析深度学习算法在图像处理领域的应用,探讨如何利用神经网络实现图像风格转换技术。通过研究不同风格迁移算法的原理和实现方式,揭示其在艺术创作、图像编辑等领域的潜在应用和挑战。
|
机器学习/深度学习 数据采集 算法
【机器学习7】特征缩放
【机器学习7】特征缩放
143 0
|
6月前
|
数据可视化
R语言实现有限混合模型建模分析
R语言实现有限混合模型建模分析
下一篇
无影云桌面