点击蓝字关注我们

作者:勾蒙蒙,R语言资深爱好者。

个人公众号:R语言及生态系统服务

我们在进行科学研究时,通常会收集到大量不同的指标变量,每个指标的性质、量纲等特征均存在着一定地差异,从而使得各指标之间不具有综合性,不能直接的进行综合分析,如在在进行主成分分析的时候,由于变量的量纲不同会使主成份得分系数的可解释性变差,使结果受到量纲大的变量影响,而忽略量纲较小的变量。因此,数据处理的前期除了数据清洗,离群值处理等,往往还需要一些处理量纲差异的方法,将数据标准化

数据标准化将数据按比例缩放,使其落到一个小的特定空间,归一化是最典型的数据标准化处理方式,即将数据统一映射到[0,1]区间上,常用的方法有四种:min-max标准化、log函数转换、atan函数转换、z-score标准化。

以下用一组实例数据加以详细地介绍数据来源于科学网赖江山博士的博客(http://blog.sciencenet.cn/u/laijiangshan),数据为古田山24公顷样地内随机抽取40个20m×20m的样方中的环境因子,主要包含高程、凹凸度、坡度、坡向、土壤N、P、K、PH等指标。

1、min-max标准化

也叫离差标准化,对原数据进行线性变换,使结果落到[0,1]区间内

##读取数据

setwd("C:/Users/lx/Desktop")

Data<-read.table("gtsenv.txt",head=TRUE,sep="")

##min-max标准化

dim(Data)

stddata<-data.frame()

for (i in 1:dim(Data)[1]){

for (j in 1:dim(Data)[2]){

stddata[i,j]<-((Data[i,j]-(min(Data[,j])))/(max(Data[,j])-min(Data[,j])))

}

}

View(stddata)

此方法在计算生态系统服务权衡均方根偏差法(RMSD)的第一步会用到

2、log函数转换

很多人误认为是log10(x),其实不然,由此获得的结果并非都落到[0,1]区间上,其结果需除以log10(max),并且所有的数据都必须大于0。

##读取数据

setwd("C:/Users/lx/Desktop")

Data<-read.table("gtsenv.txt",head=TRUE,sep="")

View(Data)

##log函数转化

dim(Data)

stddata<-data.frame()

for (i in 1:dim(Data)[1]){

for (j in 1:dim(Data)[2]){

stddata[i,j]<-(log(Data[i,j])/log(max(Data[,j])))

}

}

View(stddata)

There were 25 warnings (use warnings() to see them)##数据中存在负值

3、atan函数转换

适用于数据均大于0的情况,否则小于0的数据将会被映射到[-1,0]的区间上。

##读取数据

setwd("C:/Users/lx/Desktop")

Data<-read.table("gtsenv.txt",head=TRUE,sep="")

View(Data)

##atan函数转化

dim(Data)

stddata<-data.frame()

for (i in 1:dim(Data)[1]){

for (j in 1:dim(Data)[2]){

stddata[i,j]<-((atan(Data[i,j])*2)/pi)

}

}

View(stddata)

4、z-score标准化

是指中心化后的数据除以数据集的标准差。R中自带有scale()函数,适用于最大值和最小值未知的情况,或者有超出范围离群数据的情况,其标准化后的数据符合标准正态分布,即均值为0,标准差为1,若数据大于0水平说明高于平均水平,小于0说明低于平均水平。

scale函数详解

scale(data,center=T/F,scale=T/F)

1)center和scale默认为真,即T或者TRUE

2)center为真表示数据中心化

3)scale为真表示数据标准化

##原理的代码

##读取数据

setwd("C:/Users/lx/Desktop")

Data<-read.table("gtsenv.txt",head=TRUE,sep="")

View(Data)

##z-score标准化

dim(Data)

stddata<-data.frame()

for (i in 1:dim(Data)[1]){

for (j in 1:dim(Data)[2]){

stddata[i,j]<-((Data[i,j]-(mean(Data[,j])))/sd(Data[,j]))

}

}

View(stddata)

结束语

总结而知新,通过上文的梳理,希望能帮助大家在数据分析前期对数据标准化意义以及R的实现有初步的了解。当然,世上也没有万能的“黄金法则”,对于标准化处理方法的选择,还需要自己针对数据实际,选取恰当准确的方法。

大家都在看

2017年R语言发展报告(国内)

R语言中文社区历史文章整理(作者篇)

R语言中文社区历史文章整理(类型篇)

公众号后台回复关键字即可学习

回复 R                  R语言快速入门及数据挖掘 
回复 Kaggle案例  Kaggle十大案例精讲(连载中)
回复 文本挖掘      手把手教你做文本挖掘
回复 可视化          R语言可视化在商务场景中的应用 
回复 大数据         大数据系列免费视频教程 
回复 量化投资      张丹教你如何用R语言量化投资 
回复 用户画像      京东大数据,揭秘用户画像
回复 数据挖掘     常用数据挖掘算法原理解释与应用
回复 机器学习     人工智能系列之机器学习与实践
回复 爬虫            R语言爬虫实战案例分享

脏数据-数据量纲差异相关推荐

  1. 谈谈互金跟银行里数据逻辑的差异

    要说互金跟银行的不同的地方,先得从最近接触到的一份五级分类表说起来,然后再说说欺诈的指标的区别:最后再讲讲银行跟互金在数据方面的区别. 五级分类 目前国内多数银行.互金根据金融办的相关要求,对资产逾期 ...

  2. delphi 创建DBASE和FOXPRO两类DBF数据文件的差异

    delphi 创建DBASE和FOXPRO两类DBF数据文件的差异 delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self ...

  3. 大数据技术 学习之旅_数据-数据科学之旅的起点

    大数据技术 学习之旅 什么是数据科学? (What is Data Science?) The interesting thing about Data Science is that it is a ...

  4. 鲜活数据数据可视化指南_数据可视化实用指南

    鲜活数据数据可视化指南 Exploratory data analysis (EDA) is an essential part of the data science or the machine ...

  5. 掌握大数据数据分析师吗?_要掌握您的数据吗? 这就是为什么您应该关心元数据的原因...

    掌握大数据数据分析师吗? Either you are a data scientist, a data engineer, or someone enthusiastic about data, u ...

  6. 鲜活的数据 : 数据可视化指南

    <鲜活的数据 : 数据可视化指南> 基本信息 原书名:Visualize This : The FlowingData Guide to Design,Visualization,and ...

  7. 图灵程序设计丛书•鲜活的数据:数据可视化指南 - 电子书下载(高清版PDF格式+EPUB格式)...

    图灵程序设计丛书•鲜活的数据_数据可视化指南-邱 (Nathan Yau) 在线阅读                   百度网盘下载(o3hg) 书名:图灵程序设计丛书•鲜活的数据:数据可视化指南 ...

  8. AI创业成功公式:数据×数据+机器学习能力+算法

    投资者最关注的事情之一就是创业者是否找到了自己的护城河.以及,在未来岁月里,你的护城河是否越挖越深.在AI时代,一家希望在AI领域创业成功的公司的护城河是什么?不是算法,不是数据,而是数据的平方. 这 ...

  9. 订单管理之获取订单表详情数据数据

    获取订单表详情数据数据 当点击订单详情时,我们需要获取订单详情数据 接口分析 请求方式: GET /meiduo_admin/orders/(?P<pk>\d+)/ 请求参数: 通过请求头 ...

  10. python使用openCV把原始彩色图像转化为灰度图、使用矩阵索引的方式对数据数据进行剪裁(image cropping)

    python使用openCV把原始彩色图像转化为灰度图.使用矩阵索引的方式对数据数据进行剪裁(image cropping) 目录

最新文章

  1. 【NCEPU】韩绘锦:扩散卷积神经网络
  2. yii 操作cookie
  3. VS2010中不可忽视的部分——VSTO
  4. 语音识别学习日志 2019-7-13 语音识别基础知识准备 1{语音基础知识}
  5. 【CAM应用】谈CAM软件在实际生产中的应用举例
  6. 设计模式之中介者备忘录原型访问者
  7. 触摸屏调出虚拟键盘_苹果最新专利申请被曝光:“真实触感虚拟键盘”可能会用于ipad和笔记本电脑!...
  8. html网页中加入音乐播放器,HTML网页调用 网易云 音乐播放器代码
  9. Axure RP 9 下载、汉化及最新授权码
  10. nrm详解,nrm是什么,nrm源管理器,nrm 与npm 的区别
  11. 软件漏洞及检测技术概述
  12. 编译LineageOS
  13. 细说pc端微信扫码登录
  14. 喜讯 | 南京南方电讯有限公司荣膺“2021中国年度优选雇主”称号
  15. C语言—输出菱形(一次循环嵌套实现)
  16. java中<<与>>的意思
  17. SKEY协议设计实验
  18. c语言一元二次方程求根代码,一元二次方程求解程序完整代码
  19. htc e9刷android6,HTC E9+刷机教程_HTC ONE E9+刷zip格式的ruu包的方法
  20. 百题大战c语言写九九乘法表,九九乘法表汉字版|九九乘法表数字汉字双版下载 Word/Excel版_星星软件园...

热门文章

  1. 一款基于SpringBoot + Spring Security的后台管理系统,强烈推荐,直接用
  2. 狂砸250多亿!亚马逊花了7年时间,造了一个让你自愿加班到死的办公室!
  3. 编写Linux Shell脚本的最佳实践
  4. squid代理与缓存(下)
  5. MySQL数据库操作(3)表结构操作
  6. Java基础(静态static)
  7. 敏捷软件开发VS.传统软件工程
  8. Spring day03笔记
  9. HDU 4336:Card Collector 期望+状压
  10. 结对项目---万年历