【发布时间】:2020-02-10 19:24:34
【问题描述】:
我正在阅读 MaxAbsScaler 的文档。
https://scikit-learn.org/stable/modules/preprocessing.html#scaling-features-to-a-range
我不明白它到底是做什么的。
这是一个例子:
>>> X_train = np.array([[ 1., -1., 2.],
... [ 2., 0., 0.],
... [ 0., 1., -1.]])
...
>>> max_abs_scaler = preprocessing.MaxAbsScaler()
>>> X_train_maxabs = max_abs_scaler.fit_transform(X_train)
>>> X_train_maxabs # doctest +NORMALIZE_WHITESPACE^
array([[ 0.5, -1. , 1. ],
[ 1. , 0. , 0. ],
[ 0. , 1. , -0.5]])
>>> X_test = np.array([[ -3., -1., 4.]])
>>> X_test_maxabs = max_abs_scaler.transform(X_test)
>>> X_test_maxabs
array([[-1.5, -1. , 2. ]])
>>> max_abs_scaler.scale_
array([2., 1., 2.])
它表示它通过除以每个特征中的最大最大值来扩展训练数据位于 [-1, 1] 范围内的方式。
我认为当它在每个功能中说明时,它每列都有效。
一个更简单的解释会很棒。
【问题讨论】:
-
你的解释是正确的。每一列都是一个独特的特征
-
谢谢,但该功能是如何工作的?我尝试给出不同的数字来观察它们的变化,但我无法检测到模式。
-
这是基于(绝对)最大值的重新缩放。尝试自己实现一个,看看
-
如果我的回答有帮助,请告诉我
标签: python scikit-learn