1. 标准化

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。这样去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是0-1标准化和Z标准化

  • 0-1标准化(0-1 normalization)

也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致maxmin的变化,需要重新定义。

  • Z-score标准化(zero-mean normalization)

也叫标准差标准化,经过处理的数据符合标准正态分布即均值为0,标准差为1,其转化函数为:

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

  1. sklearn相关类
  • 使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标准化(Z-score 标准化

sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True)

>>> fromsklearn import preprocessing
>>> importnumpy as np
>>> X =np.array([[ 1., -1.,  2.],
...               [ 2.,  0., 0.],
...               [ 0.,  1., -1.]])
>>>X_scaled = preprocessing.scale(X)>>>X_scaled
array([[ 0.  ..., -1.22...,  1.33...],[ 1.22...,  0. ..., -0.26...],[-1.22...,  1.22..., -1.06...]])>>>#处理后数据的均值和方差
>>>X_scaled.mean(axis=0)
array([ 0.,  0., 0.])
>>>X_scaled.std(axis=0)
array([ 1.,  1., 1.])
  • 使用sklearn.preprocessing.StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。

classsklearn.preprocessing.StandardScaler(copy=True,with_mean=True, with_std=True)

>>> scaler= preprocessing.StandardScaler().fit(X)
>>> scaler
StandardScaler(copy=True,with_mean=True, with_std=True)>>>scaler.mean_
array([ 1. ...,  0. ..., 0.33...])>>>scaler.std_
array([0.81...,  0.81...,  1.24...])>>>scaler.transform(X)
array([[ 0.  ..., -1.22...,  1.33...],[ 1.22...,  0. ..., -0.26...],[-1.22...,  1.22..., -1.06...]])>>>#可以直接使用训练集对测试集数据进行转换
>>>scaler.transform([[-1.,  1., 0.]])
array([[-2.44...,  1.22..., -0.26...]])
  • preprocessing.MinMaxScaler将属性缩放到一个指定的最大和最小值(通常是1-0)之间

把特征的样本均值变成0,标准差变成1,这种标准化处理并不是唯一的方法。preprocessing还有MinMaxScaler类,将样本数据根据最大值和最小值调整到一个区间内;通过MinMaxScaler类可以很容易将默认的区间0到1修改为需要的区间

使用这种方法的目的包括:

1、对于方差非常小的属性可以增强其稳定性。

2、维持稀疏矩阵中为0的条目。

classsklearn.preprocessing.MinMaxScaler(feature_range=(0,1), copy=True)

,在构造类对象的时候也可以直接指定最大最小值的范围:feature_range=(min, max),此时应用的公式变为:

X_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))

X_scaled=X_std/(max-min)+min

>>> X_train= np.array([[ 1., -1.,  2.],
...                     [ 2.,  0., 0.],
...                     [ 0.,  1., -1.]])
...
>>>min_max_scaler = preprocessing.MinMaxScaler()
>>>X_train_minmax = min_max_scaler.fit_transform(X_train)
>>>X_train_minmax
array([[ 0.5       , 0.        ,  1.       ],[ 1.        , 0.5       ,  0.33333333],[ 0.        , 1.        ,  0.       ]])>>>#将相同的缩放应用到测试集数据中
>>> X_test= np.array([[ -3., -1.,  4.]])
>>>X_test_minmax = min_max_scaler.transform(X_test)
>>>X_test_minmax
array([[-1.5       , 0.        ,  1.66666667]])>>>#缩放因子等属性
>>>min_max_scaler.scale_
array([ 0.5       , 0.5       ,  0.33...])>>>min_max_scaler.min_
array([ 0.        , 0.5       ,  0.33...])

Sklearn-preprocessing.scale/StandardScaler/MinMaxScaler相关推荐

  1. Sklearn:sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数清晰讲解及其案例应用

    Sklearn:sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数清晰讲解及其案例应用 目录 sklearn.p ...

  2. 深入浅出python机器学习_9.1_数据预处理_sklearn.preprocessing.StandardScaler MinMaxScaler RobustScaler Normalizer

    # 使用StandardScaler进行数据预处理import numpyimport matplotlib.pyplot as pltfrom sklearn.datasets import mak ...

  3. 理解sklearn.processing.scale中使用有偏总体标准差

    sklearn.processing.scale数据标准化 sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, ...

  4. StandarScaler(sklearn.preprocessing)标准化中的fit、transform理解。

    如何理解StandarScaler中的fit.transform.fit_transform? fit: 用于计算训练数据的均值和方差,后面就会用均值和方差来"训练"数据. tan ...

  5. 【Import “sklearn.preprocessing“ could not be resolved 】

    这里写自定义目录标题 I did: pip install sklearn and it said the installation was successful but the line: from ...

  6. sklearn.preprocessing下的数据标准化(scale、MinMaxScaler)

    文章目录 scale MinMaxScaler scale from sklearn.preprocessing import scale Center to the mean and compone ...

  7. sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform、transform、inverse_transform简介、使用方法之详细攻略

    sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform.transform.inverse_transform简介.使用方法之详细攻略 ...

  8. Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略 目录 sklearn.preprocessing中的Stand ...

  9. sklearn:sklearn.preprocessing的MinMaxScaler简介、使用方法之详细攻略

    sklearn:sklearn.preprocessing的MinMaxScaler简介.使用方法之详细攻略 目录 MinMaxScaler简介 MinMaxScaler函数解释 MinMaxScal ...

最新文章

  1. 12月第四周安全回顾:双节期间微软忙补新漏洞,新Hash将测试
  2. PHP中session的工作原理
  3. 图像处理opencv(一)
  4. boost::graph模块实现在无向图上使用连通分量算法
  5. 对mysql的各种sql语句如何对表加锁的实验
  6. linux用户登录指定目录
  7. 插入脚注把脚注标注删掉_地狱司机不应该只是英国电影历史数据中的脚注,这说明了为什么...
  8. NodeJS开源系统Mili简介
  9. 面试必问题:JS防抖与节流
  10. python出现—with the features you requested: lxml. Do you need to install a parser library?
  11. php学生选课系统设计网站作品
  12. 126邮箱登录html,126邮箱登陆界面
  13. 绝对值对应c语言表达式,c语言绝对值函数?
  14. 2022中国汽车品牌魅力指数排名:广汽传祺、吉利、东风风行、荣威位居自主品牌前列 | 美通社头条...
  15. 微信小程序 + shiro 实现登录(安全管理) —— 保姆级教学
  16. 递归和循环两种方法完成树的镜像转换
  17. 学编程和学机器人有什么区别
  18. 基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增
  19. Nginx防止大流量攻击,限制流量访问(limit_req_zone模块)以及进行网站压力测试
  20. matlab diff对于矩阵,MATLAB中diff函数的用法

热门文章

  1. 两种方法简单实现网站随机语录的显示
  2. 什么是欧拉角/姿态角?
  3. Const用法总结:Const,Const函数,Const变量,函数后面的Const (转)
  4. Java POI的Excel操作(行高列宽比例;生成说明,标题,字段;导出Excel代码,压缩)
  5. SEBASTIEN KWOK 2022春夏系列新品上市
  6. 3.1 腾讯云AI能力矩阵
  7. ubuntu 安装中文输入法(超简靠谱版)
  8. webrtc 之 sip trickle ice
  9. String 和 StringBuider
  10. PreTranslateMessage使用