gpt4 book ai didi

python - 在 MinMaxScaler 中对多个特征使用相同的最小和最大数据

转载 作者:行者123 更新时间:2023-12-04 09:43:59 24 4
gpt4 key购买 nike

我有一个包含 5 个特征的数据集。其中两个特征非常相似,但不具有相同的最小值和最大值。

... | feature 2 | feature 3 | ...
--------------------------------
..., 208.429993, 206.619995, ...
..., 207.779999, 205.050003, ...
..., 206.029999, 203.410004, ...
..., 204.429993, 202.600006, ...
..., 206.429993, 204.25, ...
feature 3总是小于 feature 2重要的是它在缩放后保持这种状态。但是由于功能 2 和功能 3 没有完全相同的 minmax值,在缩放后,默认情况下它们最终都会有 0 和 1 作为最小值和最大值。这将消除值之间的关系。实际上在缩放之后,第一个样本变为:
 ... | feature 2 | feature 3 | ...
--------------------------------
..., 0.00268, 0.00279, ...

这是我不想要的。我似乎找不到手动更改 MinMaxScaler 的最小值和最大值的方法。 .还有其他一些丑陋的技巧,例如操纵数据并将特征 2 和特征 3 合二为一进行缩放,然后再次拆分。但是我想先知道有没有 sklearn处理的解决方案,例如对多个特征使用相同的最小值和最大值。

否则,最简单的解决方法就行了。

最佳答案

用一列拟合缩放器并转换两者。尝试使用您发布的数据:

    feature_1   feature_2
0 208.429993 206.619995
1 207.779999 205.050003
2 206.029999 203.410004
3 204.429993 202.600006

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(df['feature_2'].values.reshape(-1,1))

scaler.transform(df)

array([[1.45024949, 1. ],
[1.288559 , 0.60945366],
[0.85323442, 0.20149259],
[0.45522189, 0. ]])

如果缩放超出用于拟合缩放器的范围的数据,则缩放后的数据将超出 [0,1]。

避免它的唯一方法是单独缩放每一列。

这是否是一个问题取决于您想在缩放后如何处理数据。

关于python - 在 MinMaxScaler 中对多个特征使用相同的最小和最大数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62204406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com