在数学建模时将数据标准化往往是不可避免的一个步骤,本文将介绍sklearn库自带的三种最常见的标准化方法:Z-score标准化、0-1归一化、RobustScaler鲁棒化,以及他们的反归一化。话不多说,见代码和实例:

首先看一下本文中用到的原始数据:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import RobustScalerdatas=pd.read_excel(r"C:\Users\86177\Desktop\农林牧渔业产值占比(2014-2019年).xlsx")
datas.drop(['地区'],axis=1,inplace=True)#删除地区列的数据,只保留要标准化的内容
columns=datas.columns.tolist()#将数据列的名称以列表形式保存,为后续重建DataFrame准备
datas

     因为原始数据中的‘地区’列不是要标准化的内容,故将这一列数据删除,只保留要标准化的部分:

1、Z-score标准化

将某一列数据处理成均值为0,方差为1的数据。优点是受异常值影响较小。公式为:(X-μ)/σ

#创建StandardScaler()实例
standard_s1=StandardScaler()
#将DataFrame格式的数据按照每一个series分别标准化
standard_s1_data=standard_s1.fit_transform(datas)
#将标准化后的数据改成DataFrame格式
standard_s1_data_pd=pd.DataFrame(standard_s1_data,columns=columns)
#将标准化的数据反标准化
standard_s1_data_inverse=standard_s1.inverse_transform(standard_s1_data)
#将反标准化的数据改成DataFrame格式
standard_s1_data_inverse_pd=pd.DataFrame(standard_s1_data_inverse,columns=columns)print(standard_s1_data_pd)
print(standard_s1_data_inverse_pd)

下图左边为标准化结果,右边为反标准化结果,可以看见反标准化的结果与原始数据一致。

           

2、0-1归一化

即将某一列数据缩放到[0,1]范围内,缺点是受极值影响。公式为(X-min)/(max-min)。

#创建MinMaxScaler()实例
standard_s2=MinMaxScaler()
#将DataFrame格式的数据按照每一个series分别标准化
standard_s2_data=standard_s2.fit_transform(datas)
#将标准化后的数据改成DataFrame格式
standard_s2_data_pd=pd.DataFrame(standard_s2_data,columns=columns)
#将标准化的数据反标准化
standard_s2_data_inverse=standard_s2.inverse_transform(standard_s2_data)
#将反标准化的数据改成DataFrame格式
standard_s2_data_inverse_pd=pd.DataFrame(standard_s2_data_inverse,columns=columns)print(standard_s2_data_pd)
print(standard_s2_data_inverse_pd)

           

3、RobustScaler鲁棒化

通过中位数和四分位距来缩放,使用于对异常值较多的情况。公式为(X-中位数)/四分位距。

#创建RobustScaler()实例
standard_s3=RobustScaler()
#将DataFrame格式的数据按照每一个series分别标准化
standard_s3_data=standard_s3.fit_transform(datas)
#将标准化后的数据改成DataFrame格式
standard_s3_data_pd=pd.DataFrame(standard_s3_data,columns=columns)
#将标准化的数据反标准化
standard_s3_data_inverse=standard_s3.inverse_transform(standard_s3_data)
#将反标准化的数据改成DataFrame格式
standard_s3_data_inverse_pd=pd.DataFrame(standard_s3_data_inverse,columns=columns)print(standard_s3_data_pd)
print(standard_s3_data_inverse_pd)

         

sklearn库三种标准化与反标准化方法介绍相关推荐

  1. python如何安装matplotlib_详解python安装matplotlib库三种失败情况

    (可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...

  2. matlab标准化和反标准化——zscore

    先说一下一个小疑问: 目前所了解的归一化概念有点模棱两可,目前可能有三种理解 假设矩阵A大小n*m,n代表样本数,m代表每一个样本的维度 ①单独对每一列(全部样本的同一个属性)进行归一化 ②单独对每一 ...

  3. Py之scikit-learn:机器学习Sklearn库的简介、安装、使用方法(ML算法如何选择)、代码实现之详细攻略

    Py之scikit-learn:机器学习Sklearn库的简介.安装.使用方法.代码实现之详细攻略 目录 scikit-learn的简介 scikit-learn的安装 scikit-learn的使用 ...

  4. 三种批量插入数据的方法

    批量插入数据 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server ...

  5. SQL下三种执行CMD命令的方法

    SQL下三种执行CMD命令的方法: 先删除7.18号日志: (1)exec master.dbo.xp_cmdshell 'del C:/winnt/system32/logfiles/W3SVC5/ ...

  6. AutoCAD二次开发三种添加插件按钮的方法

    在上一篇关于AutoCAD的文章中,我将很多关于CAD的博客相关资源进行了说明,这一篇文章我将介绍如何在AutoCAD中的ribbon中添加相应的按钮.就是下面这种按钮: PS:在开发中我们最好使用中 ...

  7. AutoCAD二次开发三种添加插件按钮的方法之二

    上一篇相关文章主要借助了cuix配置文件来制作插件按钮,但是对于纯码农来说还是喜欢以代码来说话,今天这篇文章就来讲讲纯代码添加按钮. 开发IDE:VS2010 环境:.Net Framework4.0 ...

  8. K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

    原文:http://www.cnblogs.com/yixuan-xu/p/6272208.html K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means ...

  9. Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)

    http://www.linuxeden.com/html/sysadmin/20080424/56879.html 现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量, ...

最新文章

  1. 开挂的 00 后!17 岁「天才少女」被 8 所世界名校录取,最终选择 MIT 计算机系...
  2. 温故(2):pass by value
  3. 【VC基础】1、特性和分类
  4. ITK:两条曲线上所有点之间的平均距离
  5. oracle登陆认证方式
  6. oracle中简单查询语句的格式及执行顺序分析
  7. onlyOfice取消上传文件大小的限制
  8. mysql预编译语句拼接查询_SQL语句预编译(查询)
  9. 解决Javascript疲劳的方法-以及其他所有疲劳
  10. noi 7627 鸡蛋的硬度
  11. python是什么 自学-python自学需要什么软件?
  12. python编程入门经典-总算理解python编程入门经典教程
  13. 对/boot/grub/grub.conf的理解
  14. 怎样查看sql服务器日志文件,怎么通过sql日志,查看以前执行过的sql语句
  15. foxmail新建文件夹失败或者新建文件夹不显示的问题
  16. Java内存映射原理与实现
  17. 全面解析用友网络四位一体数字营销
  18. 《数据结构》第五章 树和二叉树 同学问题收集站
  19. 修改linux域名解析失败,kali 更新域名解析失败问题解决办法
  20. golang GC垃圾回收机制

热门文章

  1. 复习笔记——物联网通信技术题
  2. (第二回合)回龙观大叔狂磕mysql
  3. 百度地图标点实现vue
  4. windows下MX150显卡安装cuda11.3+cudnn8.4.1+torch1.12.0+torchvision0.13.0+torchaudio0.12.0
  5. mysql 错误日志_MySQL错误日志(Error Log)详解
  6. 榛子树搜索算法(Hazelnut tree search algorithm,HTS)附matlab代码
  7. keras实现lenet5
  8. 小年到 纳福瑞 - 挑战赛第二波福利来袭~~
  9. 使用uni-app开发微信小程序流程
  10. 金刚狼RPG游戏进度1