为了账号安全,请及时绑定邮箱和手机立即绑定

有人可以在 Scikit-learn 中解释 MaxAbsScaler 吗?

有人可以在 Scikit-learn 中解释 MaxAbsScaler 吗?

UYOU 2022-06-22 15:06:32
我正在阅读 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] 范围内的方式。我认为当它在每个功能中说明时,它每列都有效。一个更简单的解释会很棒。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

该函数将每个特征按其最大绝对值进行缩放。 这里的特征是 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. ]


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


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信