我一直在关注sklearn文档,并且能够弄清 MinMaxScaler(), 但是 sklearn.preprocessing.normalise 是什么?谁能用一个简单的例子向我解释。谢谢。
答案 0 :(得分:0)
规范化器将处理每一行以将其重新缩放为单位圆,例如:
平方数据的总和等于1。
所以
X = [4, 1, 2, 2]
transformer = Normalizer().fit(X)
# Returns
Normalizer(copy=True, norm='l2')
# Then when you transform you
transformer.transform(X)
# Returns
array([0.8, 0.2, 0.4, 0.4])
要验证我的意思,您可以验证平方和等于1:
0.8 ^ 2 + 0.2 ^ 2 + 0.4 ^ 2 + 0.4 ^ 2 = 1
MinMaxScaler使用列的max和min来按以下公式在0到1之间缩放数据:
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min
where min, max = feature_range
以相同的示例:
# feature_range = 0, 1 if you want to scale it between 0 and 1
X_std = [1, 0, 0.333, 0.333]
X_scaled = X_std * (1 - 0) + 0
# So X_scaled = X_std for this range
因此您的MinMaxScaled为X_scaled = [1, 0, 0.333, 0.333]
再举一个例子,您可以检查数学:
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler()
print(scaler.fit(data))
#
MinMaxScaler(copy=True, feature_range=(0, 1))
print(scaler.data_max_)
[ 1. 18.]
print(scaler.transform(data))
[[0. 0. ]
[0.25 0.25]
[0.5 0.5 ]
[1. 1. ]]