MinMaxScaler 标准化已经在 [0,1] 范围内的值 Python

Posted

技术标签:

【中文标题】MinMaxScaler 标准化已经在 [0,1] 范围内的值 Python【英文标题】:MinMaxScaler Normalizing values that are already in [0,1] range Python 【发布时间】:2021-05-23 07:24:49 【问题描述】:

我计划使用几列数据来训练 ANN 回归模型。大多数这些列的值范围从 0 到 10,000.00,但一个特定列的值始终在 [0,1] 范围内,并且精度高达小数点后 10 位,例如。值:0.1582639672。通常我会使用sklearn.preprocessing 中的MinMaxScaler 类将我的数据集的所有值标准化为[0,1] 范围,但是我担心在对这个特定列应用标准化时可能会丢失精度。

以 10 位精度对浮点值进行归一化会导致数据丢失,因为它会产生可能超过浮点类型可以 faithfully 表示的最大数字精度的“进一步归一化”值吗?

【问题讨论】:

【参考方案1】:

由于值已经在 [0,1] 中,我想您可以手动将其从规范化过程中排除,并在完成后重新添加该列。通过这种方式,您可以保持该特定列的精度,因为规范化是逐列完成的,因此不会影响其他列。

【讨论】:

以上是关于MinMaxScaler 标准化已经在 [0,1] 范围内的值 Python的主要内容,如果未能解决你的问题,请参考以下文章

Python 3 - ValueError: 找到包含 0 个样本的数组 (shape=(0, 11)),而 MinMaxScaler 至少需要 1

在训练数据上使用 MinMaxScaler 以生成用于测试数据的标准、最小值和最大值

使用Sklearn的MinMaxScaler做最简单的归一化

ValueError: 找到具有 0 个特征的数组 (shape=(2698, 0)),而 MinMaxScaler 要求最小值为 1

ValueError:找到具有 0 个样本 (s) 的数组(形状 = (0, 1),而 MinMaxScaler 要求最小值为 1

MinMaxScaler.fit_transform 始终返回/转换为 0