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