【问题标题】:Can someone explain MaxAbsScaler in Scikit-learn?有人可以在 Scikit-learn 中解释 MaxAbsScaler 吗?
【发布时间】: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


【解决方案1】:

函数按最大绝对值缩放每个特征。 这里的特征是 X 输入矩阵的每一列。


这里有:

X_train = np.array([[ 1., -1.,  2.],
                    [ 2.,  0.,  0.],
                    [ 0.,  1., -1.]])

你会得到:

array([[ 0.5, -1. ,  1. ],
       [ 1. ,  0. ,  0. ],
       [ 0. ,  1. , -0.5]])

训练集解说

X_train 中的第一个特征是第一列,即[1,2,0]。最大绝对值为2。然后将此列的所有值除以2。所以新列变成[0.5,1,0]

同样,您对其他 2 个功能/列执行相同的操作。 对于特征 2,最大绝对值为1。所以新列保持不变。

最后,对于最后一个特征,您的最大绝对值为2。所以最终的特征变成了[2/2 , 0/2 , -1/2] = [1, 0, -0.5]


测试集说明

接下来,您定义X_test = np.array([[ -3., -1., 4.]])。在这里,您有一个具有 3 个特征的示例。

重要提示缩放器是使用训练集训练的,将使用训练集的最大绝对值。

所以你得到:[ -3./2, -1./1, 4./2] = [-1.5, -1. , 2. ]

P.S:用于除法的值2,1 and 2 来自使用训练集的估计。

【讨论】:

  • 哇,现在这么简单。干得好。你能告诉我为什么我们要在使用 SVM 训练之前在数据上使用它吗?
  • 一般来说,使用任何 mL 模型,在拟合模型之前始终缩放数据是一个好主意。如果您不进行缩放,则与具有较低值范围的特征相比,具有较大范围的特征将对模型产生更大的影响。考虑接受我的回答
  • 所以主要是为了规范化?
  • 可以使用任何类型的缩放。 MinMax、标准化、MaxAbsolute 等
  • 你能帮忙解决这个问题吗:stackoverflow.com/questions/58375486/… ?
猜你喜欢
  • 2012-05-29
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多