sklearn库三种标准化与反标准化方法介绍
在数学建模时将数据标准化往往是不可避免的一个步骤,本文将介绍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库三种标准化与反标准化方法介绍相关推荐
- python如何安装matplotlib_详解python安装matplotlib库三种失败情况
(可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...
- matlab标准化和反标准化——zscore
先说一下一个小疑问: 目前所了解的归一化概念有点模棱两可,目前可能有三种理解 假设矩阵A大小n*m,n代表样本数,m代表每一个样本的维度 ①单独对每一列(全部样本的同一个属性)进行归一化 ②单独对每一 ...
- Py之scikit-learn:机器学习Sklearn库的简介、安装、使用方法(ML算法如何选择)、代码实现之详细攻略
Py之scikit-learn:机器学习Sklearn库的简介.安装.使用方法.代码实现之详细攻略 目录 scikit-learn的简介 scikit-learn的安装 scikit-learn的使用 ...
- 三种批量插入数据的方法
批量插入数据 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server ...
- SQL下三种执行CMD命令的方法
SQL下三种执行CMD命令的方法: 先删除7.18号日志: (1)exec master.dbo.xp_cmdshell 'del C:/winnt/system32/logfiles/W3SVC5/ ...
- AutoCAD二次开发三种添加插件按钮的方法
在上一篇关于AutoCAD的文章中,我将很多关于CAD的博客相关资源进行了说明,这一篇文章我将介绍如何在AutoCAD中的ribbon中添加相应的按钮.就是下面这种按钮: PS:在开发中我们最好使用中 ...
- AutoCAD二次开发三种添加插件按钮的方法之二
上一篇相关文章主要借助了cuix配置文件来制作插件按钮,但是对于纯码农来说还是喜欢以代码来说话,今天这篇文章就来讲讲纯代码添加按钮. 开发IDE:VS2010 环境:.Net Framework4.0 ...
- 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 ...
- Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)
http://www.linuxeden.com/html/sysadmin/20080424/56879.html 现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量, ...
最新文章
- 开挂的 00 后!17 岁「天才少女」被 8 所世界名校录取,最终选择 MIT 计算机系...
- 温故(2):pass by value
- 【VC基础】1、特性和分类
- ITK:两条曲线上所有点之间的平均距离
- oracle登陆认证方式
- oracle中简单查询语句的格式及执行顺序分析
- onlyOfice取消上传文件大小的限制
- mysql预编译语句拼接查询_SQL语句预编译(查询)
- 解决Javascript疲劳的方法-以及其他所有疲劳
- noi 7627 鸡蛋的硬度
- python是什么 自学-python自学需要什么软件?
- python编程入门经典-总算理解python编程入门经典教程
- 对/boot/grub/grub.conf的理解
- 怎样查看sql服务器日志文件,怎么通过sql日志,查看以前执行过的sql语句
- foxmail新建文件夹失败或者新建文件夹不显示的问题
- Java内存映射原理与实现
- 全面解析用友网络四位一体数字营销
- 《数据结构》第五章 树和二叉树 同学问题收集站
- 修改linux域名解析失败,kali 更新域名解析失败问题解决办法
- golang GC垃圾回收机制
热门文章
- 复习笔记——物联网通信技术题
- (第二回合)回龙观大叔狂磕mysql
- 百度地图标点实现vue
- windows下MX150显卡安装cuda11.3+cudnn8.4.1+torch1.12.0+torchvision0.13.0+torchaudio0.12.0
- mysql 错误日志_MySQL错误日志(Error Log)详解
- 榛子树搜索算法(Hazelnut tree search algorithm,HTS)附matlab代码
- keras实现lenet5
- 小年到 纳福瑞 - 挑战赛第二波福利来袭~~
- 使用uni-app开发微信小程序流程
- 金刚狼RPG游戏进度1