Python | MinMaxScaler()、MaxAbsScaler()到底是什么意思?Python归一化和标准化preprocessing.scale(x)区别!

Python 专栏收录该内容
21 篇文章 0 订阅

----首先下结论:

MinMaxScaler归一化到[0,1]

MaxAbsScaler归一化到[-1,1]

这些归一化不是整个矩阵归一化!是一列一列进行的归一化!!!!!

MinMaxScaler归一化到[0,1]

 

 

from sklearn import preprocessing
import numpy as np
 
x = np.array([[3., 3, 2., 1],
              [2., 0., 0., 2],
              [0., 1., 1., 3],
              [1., 2., 3, 0]])
 
min_max_scaler = preprocessing.MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(x)
print(x_minmax)

[[1,1,0.6,0.3],

[0.6,0,0,0.6],

[0,0.3,0.3,1]

[0.3,0.6,1,0]]
 

如果有新的数据来,使用x.append(y)

from sklearn import preprocessing
import numpy as np
 
x = np.array([[3., 3, 2., 1],
              [2., 0., 0., 2],
              [0., 1., 1., 3],
              [1., 2., 3, 0]])

y=[4,3,2,1]
# 直接加后面就行!
x.append(y)

min_max_scaler = preprocessing.MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(x)
print(x_minmax)

同理:MaxAbsScaler()仅仅就是归一化到[-1,1]

再注意区分标准化!preprocessing.scale(x)

何为标准化? 

标准化就是将矩阵进行去均值,使得均值变为0,然后调整成标准正态分布!

from sklearn import preprocessing
import numpy as np

x = np.array([[3., 3, 2., 1],
              [2., 0., 0., 2],
              [0., 1., 1., 3],
              [1., 2., 3, 0]])

print("标准化之前方差:", x.mean(axis=0))
print("标准化之前标准差:", x.std(axis=0))

#标准化
x_scale = preprocessing.scale(x)
print("\n标准化后结果:\n", x_scale)
# 这里输出应该是【0,0,0,0】
print("\n标准化之后方差:", x_scale.mean(axis=0))
# 这里输出应该是【1,1,1,1】
print("标准化之后标准差:", x_scale.std(axis=0))

 

  • 0
    点赞
  • 1
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值