gpt4 book ai didi

python - sklearn.preprocessing 中的自定义装箱?

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:21 27 4
gpt4 key购买 nike

我有一个名为 size_array 的连续变量列表。我一直在像这样从 [0, 1] 缩放它们:

max_abs_scaler = preprocessing.MinMaxScaler()
scaled = max_abs_scaler.fit_transform(size_array)

有没有办法在中位数(或百分位数)为 0 的 [-1, 1] 范围内缩放它们?我的数据是右偏的,因此中位数以上的值分散很多,而中位数左侧的值没有分散。我尝试用这种方法缩放它们:

def using_median():
if x >= median:
return (x - median)/(max - median)
else:
return (median - x)/(median - min)

但这没有用。有没有其他方法可以用 sklearn.preprocessing 做到这一点?

最佳答案

我建议使用 PowerTransformer() .它可以很好地适用于偏态分布。

看看这个例子:

from sklearn import preprocessing
import matplotlib.pyplot as plt
import numpy as np

pt = preprocessing.PowerTransformer()
X_lognormal = np.random.RandomState(616)\
.lognormal(size=(300, 2))

_,ax = plt.subplots(1,2,sharey=True)
ax[0].hist(X_lognormal)

ax[1].hist(pt.fit_transform(X_lognormal))

enter image description here

关于python - sklearn.preprocessing 中的自定义装箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58254203/

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