gpt4 book ai didi

python - 缩放数组 (sklearn) - python

转载 作者:行者123 更新时间:2023-12-01 09:13:31 25 4
gpt4 key购买 nike

过去几个小时我一直在试图解决这个问题,但我遇到了很多问题。我想使用 sklearn 的 MinMaxScaler。

公式如下

Xnorm = X-Xmin / Xmax-Xmin

我想将该公式应用于某些数组位置,但无法弄清楚如何应用反公式,例如

Xnorm = Xmax-X / Xmax-Xmin

我的尝试:我想对数组中的第一个和第三个值进行标准化,对于数组中的第二个值,我想从上面的公式中获得逆标准化

X = np.array([[-0.23685953,  0.04296864,  0.94160742],  
[-0.23685953, 1.05043547, 0.67673782],
[0.12831355, 0.16017461, 0.27031023]])


from sklearn import preprocessing
minmax_scale = preprocessing.MinMaxScaler().fit(X)
X_std = minmax_scale.transform(X.iloc[:,np.r_[1,3])

最佳答案

使用公式计算特定列的 Xnorm 的任务:-

Xnorm = Xmax-X/Xmax-Xmin

如果您反转该特定列中值的符号,然后在该列中应用基本标准化,就可以解决这个问题。

证明

如果某列的最大值为 A ,最小值为 B ,则将所有值乘以 -1 后,新的最小值元素的绝对值将变为 |A|

(因此分子将计算为 { -1*X - -1*A } == { A - X } ),

分母的相对差异将保持不变。

<小时/>

在您的测试用例上实现逻辑:-

import numpy as np
X = np.array([[-0.23685953, 0.04296864, 0.94160742],
[-0.23685953, 1.05043547, 0.67673782],
[0.12831355, 0.16017461, 0.27031023]])


from sklearn import preprocessing
X[:, 1] = -1*X[:, 1]
minmax_scale = preprocessing.MinMaxScaler().fit(X)
X_std = minmax_scale.transform(X)

在打印 X_std 时我们得到:-

array([[0.        , 1.        , 1.        ],
[0. , 0. , 0.60543616],
[1. , 0.8836627 , 0. ]])

这表明第 2 列的值是所需值,即使用建议的逆标准化公式计算的值。

希望这会有所帮助。

不断询问,不断成长:)

关于python - 缩放数组 (sklearn) - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51449039/

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